rsync - ファイル/ディレクトリの同期2011/04/10 |
rsyncを利用して、あるホスト内のファイル/ディレクトリを、別ホスト内へコピーします。
rsyncの基本的な使い方はリンク先の通りで、ローカルマシン上のあるファイル/ディレクトリをローカルマシン上の別ディレクトリにコピーするだけであれば、
単にコマンドをcron登録しておけば良いだけなのですが、対象のいずれかが別ホストになるとそのホストの管理者パスワードを問われるため、
以下のように前もってrsyncでの同期を許可する設定をしておきます。
以下の例ではコピー元ホスト [10.0.0.31] の /var/www/html 配下のファイル/ディレクトリを、コピー先ホスト [10.0.0.33] の /home/backup 配下にコピーするようにします。
|
|
[1] | コピー先ホストの設定です。 |
[root@lan ~]#
yum -y install rsync xinetd
[root@lan ~]#
vi /etc/xinetd.d/rsync
# default: off
[root@lan ~]# # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = no # 変更 flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } /etc/rc.d/init.d/xinetd start Starting xinetd: [ OK ]
[root@lan ~]#
[root@lan ~]# chkconfig xinetd on mkdir /home/backup
[root@lan ~]#
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 |
[2] | コピー元ホストの設定です。 |
[root@www ~]#
yum -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/html/ 10.0.0.33::site # 定期的に実行する場合はcronに登録しておく
[root@www ~]#
crontab -e # 毎日午前2時に同期実行 00 02 * * * rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /var/www/html/ 10.0.0.33::site
|