Scientific Linux 6
Sponsored Link

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
# 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

}
[root@lan ~]#
/etc/rc.d/init.d/xinetd start

Starting xinetd:
[ OK ]

[root@lan ~]#
chkconfig xinetd on
[root@lan ~]#
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 ~]#
# 毎日午前2時に同期実行

00 02 * * * rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /var/www/html/ 10.0.0.33::site
関連コンテンツ