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に許可したいネットワークを指定してやればパスワードなしで転送が出来る。

起動設定

rsyncはデフォルトで無効化されているので、有効化する。

% sudo vim /etc/xinetd.d/rsync
- disable = yes
+ disable = no

起動

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部分はシェルスクリプトかなにか書けばいいだけの様な気がする。

なにかもっと便利な使い方があるのかなぁ……