rsync - ファイル/ディレクトリの同期2013/06/05 |
rsyncを利用して、あるホスト内のファイル/ディレクトリを、別ホスト内へコピーします。
rsyncの基本的な使い方はリンク先の通りで、ローカルマシン上のあるファイル/ディレクトリをローカルマシン上の別ディレクトリにコピーするだけであれば、
単にコマンドをcron登録しておけば良いだけなのですが、対象のいずれかが別ホストになるとそのホストの管理者パスワードを問われるため、
以下のように前もってrsyncでの同期を許可する設定をしておきます。
以下の例ではコピー元ホスト [10.0.0.31] の /var/www 配下のファイル/ディレクトリを、コピー先ホスト [10.0.0.30] の /home/backup 配下にコピーするようにします。
|
|
[1] | コピー先ホストの設定です。 |
root@dlp:~#
aptitude -y install rsync
root@dlp:~#
vi /etc/default/rsync # 8行目:変更 RSYNC_ENABLE= true
root@dlp:~#
vi /etc/rsyncd.conf # 名前(テキトーに) [site] # コピー先対象ディレクトリ path = /home/backup # コピーを許可するホスト(コピー元ホストを指定) hosts allow = 10.0.0.31 hosts deny = * list = true uid = root gid = root read only = false mkdir /home/backup root@dlp:~# /etc/init.d/rsync start Starting rsync daemon: rsync. |
[2] | コピー元ホストの設定です。 |
root@www:~#
aptitude -y install rsync
root@www:~#
vi /etc/rsync_exclude.lst # コピー元の対象ディレクトリ内から、コピーを除外するファイル/ディレクトリを記述(相対パス)
test test.txt |
[3] | 以上の設定完了後、以下のようにしてコピー元ホストからコピーを行います。 |
root@www:~#
rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /var/www/ 10.0.0.30::site # 定期的に実行する場合はcronに登録しておく
root@www:~#
crontab -e # 毎日午前2時に同期実行 00 02 * * * rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /var/www/ 10.0.0.30::site
|