rsync をデーモンモードで動作させることでrsyncサーバを立てて、パスワードなしでrsyncプロトコルを利用してコンテンツの同期ができるようになります。
【転送元サーバでの設定】
xinetdは転送元で利用します。インストールします。
# yum install xinetd
起動
# /etc/rc.d/init.d/xinetd start
必要なら自動起動設定もしておきます。
【転送先サーバでの設定】
rsyncd.confを作成します。
# vi /etc/rsyncd.conf log file = /var/log/rsync.log # ログの出力先です。 use chroot = yes # chrootを可能いするかどうか。 max connections =10 # 最大接続数 利用頻度を考えて設定しておけば良い。 [test] # 名前を付けます。なんでも良いです。 path = /home/xxxx # path配下がrsyncサーバで制御可能になります。 uid = root # 利用可能ユーザ gid = root # 利用可能グループ read only = false # 読みのみにしておくと上書き等の事故が防げるので利用すべし。今回は利用せず。 hosts allow = 171.x.x.x # 許可ホストのIP hosts deny=* # 拒否ホストのIP 基本すべてで良いと思います。
デーモンモードで起動します。
# rsync --daemon --config=/etc/rsyncd.conf
このモードで起動しないといけないので注意が必要です。
【転送】
今回の場合は、転送元でコマンドを叩く場合です。
# rsync -av /home/test/* root@171.x.x.x::test/home/xxxx/*
※ testの前に「::」と2回続いているのがミソです。
間違っていないか確認したいなら、ドライランしてみましょう。
# rsync -avn /home/test/* root@171.x.x.x::test/home/xxxx/*
【番外編】
接続エラーの対応。
# rsync -avn /home/test/* root@171.x.x.x::test/home/xxxx/* rsync: failed to connect to 171.x.x.x: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
接続エラーが発生しました。telnetしてみると、、、telnetも繋がりません。
というわけで、転送先にログインしてローカルホストにtelnetしてみるも繋がりません。rsyncサーバが起動していなかったんですね。
デーモンモードで起動して解決です。
# rsync --daemon --config=/etc/rsyncd.conf