rsyncd.confを使ってみる
複数のウェブサーバ間で簡単にデータを同期したかったのでrsyncを使ってみた。
普通にrsyncを使うとパスワードの入力とかが面倒くさいのでxinetd使って設定した。
xinetdのインストール
% sudo yum -y install xinetd
rsyncd.confの作成
/etc/rsyncd.confが存在しないので、作成する。
% sudo vim /etc/rsyncd.conf
uid = root gid = root read only = no hosts allow = 192.168.0.1/24 hosts deny = * exclude = .svn [sample] path = /home/hamaco/web/sampleweb
.svnディレクトリは邪魔なだけなのでexcludeしてある。
hosts allowに許可したいネットワークを指定してやればパスワードなしで転送が出来る。
起動
xinetdの起動をするだけ。
% sudo /etc/init.d/xinetd start
試す
xinetdを起動したのと別のマシンからrsyncで転送してみる。
% rsync -auv --delete ./testdir/ 192.168.0.51::sample building file list ... done ./ sample.html sample.php sample.pl sample.py sample.rb sample.txt sent 396 bytes received 154 bytes 1100.00 bytes/sec total size is 0 speedup is 0.00
確認
ちゃんと転送できたか確認する。
% ls ~/web/sampleweb/ sample.html sample.php sample.pl sample.py sample.rb sample.txt
まとめ
設定も簡単でrsyncの面倒なexcludeとかパスワード入力をしなくていいので便利。
やってから思ったけど、別に公開鍵用意してexclude部分はシェルスクリプトかなにか書けばいいだけの様な気がする。
なにかもっと便利な使い方があるのかなぁ……