自宅サーバーとリアルタイムで同期を取りたくなったのでlsyncdを入れてみました。
環境はcentos6 さくらVPSから自宅サーバーへのファイルの同期です。
rsyncで設定するより全然楽々でした。
コピー元サーバーでrpmforgeを使ってyumでインストール。
# yum --enablerepo=rpmforge install lsyncd
今回はパス無しでファイルが取れるようにしますw
コピー元でパスが空のid_rsa.pubを作成
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub
コピー先サーバーにid_rsa.pubの内容を記載
vim /root/.ssh/authorized_keys
これでrootでパス無しログインができます。
次にconfの元を所定の場所に設置
cp /usr/share/doc/lsyncd/lrsync.lua /etc/lsyncd.conf
たいした内容書いてませんがw
今回行った設定は以下
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--コピー元
settings = {
statusFile = "/tmp/lsyncd.stat",
logfile = "/var/log/lsyncd.log",
statusInterval = 1,
}
--コピー先
sync{
default.rsync,
source="/home/",
-- target="trg",
target="hoge:/home/",
rsyncOps={"-av"},
}
/home以下を全部送ります。
rsyncのオプションはお好みで。
自動起動設定をしたり
# chkconfig lsyncd on
サービスを上げるとsyncが始まります。
# /etc/rc.d/init.d/lsyncd restart
しかし、設定が違ったり
rsync: -aq: unknown option
rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
ディレクリがなかったりしたら
rsync: mkdir "/hage/" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(576) [receiver=3.0.6]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
こんな風に文句言ってきますので設定を見直します。
実行時に指定したログを
# tail -f /var/log/lsyncd.log
tailしておくとわかりやすいです。
設置したら勝手に同期とってくれます。
ほとんどリアルタイムって感じですね。
geo-replicationを使っても非同期みたいなのでこちらの方が手軽なのかな?
まだ、さわりしか使ってませんが便利ですねlsyncd