いつの間にか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