いつの間にかlsyncdのバージョンが2に上がってたー。ということで設定手順をまとめねば。
前提としてOSはUbuntu 11.10以降で。
lsyncdのバージョンが1系ならlsyncd+rsyncdでのミラーサーバー構築をどうぞ。
ミラー先設定
まず、rsyncdの設定から。
sudo nano /etc/rsyncd.conf
# # Global options # log file = /var/log/rsyncd/rsyncd.log uid = root gid = root # # Module options # [www] path = /var/www hosts allow = 192.168.1.101/32 hosts deny = * read only = false
uidとgidを設定をしないとそれぞれnobody、nogroupとなります。
次にログローテートの設定。
sudo nano /etc/logrotate.d/rsyncd
/var/log/rsyncd/rsyncd.log {
daily
missingok
rotate 30
compress
delaycompress
dateext
notifempty
}
ログの保存先のディレクトリを作成してローテートのテスト。
sudo mkdir -p /var/log/rsyncd
sudo logrotate -d /etc/logrotate.conf
rsyncをxinetdで動かしたいのでxinetdが入っていなければインストールする。
sudo aptitude install xinetd
そしてxinetdで動かすrsyncdの設定。
only_fromのところにはミラー元のIPを記述しておきます。
sudo nano /etc/xinetd.d/rsyncd
service rsync
{
disable = no
socket_type = stream
user = root
wait = no
server = /usr/bin/rsync
server_args = --daemon --config=/etc/rsyncd.conf
only_from = 192.168.1.101/32 127.0.0.1
log_on_failure += USERID
}
xinetdを再起動
sudo /etc/init.d/xinetd restart
ミラー元設定
いよいよミラー元の設定。
lsyncd2をインストールする。
Ubuntu 11.10 (Oneiric)以降でないとlsyncd2になっていないので注意。
sudo aptitude install lsyncd
設定ファイルのサンプルをコピーして編集する。バージョン2からはxmlではなくluaに変更になっています。
起動スクリプトの中を見てみると
sudo nano /etc/init.d/lsyncd
CONFIG=/etc/lsyncd/lsyncd.conf.lua
とあるので、/etc/lsyncd/lsyncd.conf.luaにコピーします。
sudo mkdir -p /etc/lsyncd
sudo cp -p /usr/share/doc/lsyncd/examples/lrsync.lua /etc/lsyncd/lsyncd.conf.lua
そして編集。
sourceにはミラーしたいパス、targetにはミラー先のIPとrsyncdに記述したモジュール名(今回の例ではwww)を記述しておく。
パスの最後に/がついていればその配下、ついていなければディレクトリそのものになります
sudo nano /etc/lsyncd/lsyncd.conf.lua
settings = {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/run/lsyncd.stat",
statusInterval = 1,
}
sync{
default.rsync,
rsyncOps = {
"-ltr",
"-p",
"-avz",
"--delete"
},
source="/var/www/",
target="192.168.1.99::www/",
}
lsyncdのログローテート設定
sudo nano /etc/logrotate.d/lsyncd
/var/log/lsyncd/lsyncd.log {
daily
missingok
rotate 30
compress
delaycompress
dateext
notifempty
}
lsyncdのログの保存先のディレクトリを作成してローテートのテスト。
sudo mkdir -p /var/log/lsyncd
sudo logrotate -d /etc/logrotate.conf
lsyncdをスタートさせる。
sudo /etc/init.d/lsyncd start
これでミラーされるか試してみる。
sudo touch /var/www/test
ミラー先にtestができてれば成功。
できていなければログを確認して解決してください。
ちなみにポートは873なのでiptables等で制限してる場合は許可するようにしてください。
ミラー元
iptables -A OUTPUT -p tcp -d ミラー先IP --sport 873 -j ACCEPT
ミラー先
iptables -A INPUT -p tcp -s ミラー元IP --dport 873 -j ACCEPT