トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

UNIX/Linux Knowledge

rsync

http://rsync.samba.org/

 ファイルやディレクトリを主にバックアップを目的として同期を行うアプリケーションです。SSH や cron を用いて遠隔地へのバックアップや自動バックアップを実現することができます。

設定方針

 ここで説明する設定の方針を以下に示します。

  • 「ローカルホスト (hostlocal.local)」のファイルを「リモートホスト (hostremote.local)」へ rsync を使用してバックアップを行う
  • 「ローカルホスト」から「リモートホスト」への経路は十分なセキュリティーが確保されているものとする
  • バックアップの際は root 権限を使う

実際の設定

 まずは root 権限でパスフレーズなしでローカルホストからリモートホストにログインできるように こちら のページを参考に SSH の設定を行ってください。

 まずコマンドを実行して rsync の挙動を試すときは、以下のようにオプションを指定して実施します。

rsync -avzn --delete -e "ssh -i /root/.ssh/rsync" /home/ hostremote.local:/var/backup/

 上記のコマンドを実行した場合、実際のファイル転送は行われず( -n オプション)、SSH で /root/.ssh/rsync という公開鍵を使って remotehost.local.net に接続の上( -e "ssh -i /root/.ssh/rsyc" )、転送情報を表示しファイル属性を保ち圧縮しながら( -avz オプション)、ローカルホストの /home 以下の内容をリモートホストの /var/backup 以下に転送します。

 また上記ではローカルホスト側で削除されたファイルは、実行時にリモートホスト側でも削除される --delete オプションを使用していますが、これは必要に応じて使用するようにしてください*1

 実際に出力される情報を見て、次に -n オプションなしで実行してみて、思い通りの共同が得られるようなら、最終的に次のようなシェルスクリプトを用意しておいて、cron で回すというのが、実用的な使い方でしょう。

RSYNC=/usr/bin/rsync
RSYNC_OPT='-avz --delete -e'
SSH_OPT='ssh -i /root/.ssh/rsync'
BACKUP_SRV=hostremote.local
BACKUP_LOG=/var/log/rsynclog

test -x $RSYNC || exit 0

echo -n "*** Rsync Backup Start " >> $BACKUP_LOG
date "+%Y/%m/%d %T" >> $BACKUP_LOG

$RSYNC $RSYNC_OPT "$SSH_OPT" /home/ $BACKUP_SRV:/var/backup/ >> $BACKUP_LOG 2>&1

echo -n "*** Rsync Backup End " >> $BACKUP_LOG
date "+%Y/%m/%d %T" >> $BACKUP_LOG
echo -e "\n"

リンク集



*1 一度、すべてをリモートホストに転送しないと実際の挙動も試せません

© 2004-2011 Ellinikonblue.com All Rights Reserved.