- 更新が検知されなず、同期されない
- 更新が検知されてもtail -fできない
まずはインストール方法
yumで入ってくれるバージョンは古いので要注意
lsyncd.x86_64 2.0.4-1.el5.1 epelだと、Apacheのログファイルのようにファイルをオープンしっぱなしのファイルについては更新を検知できないらしい。
githubによると、inotifyModeのところに
(Lsyncd >= 2.0.5) Specifies on inotify systems what kind of changes to listen to. Can be "Modify", "CloseWrite" (default) or "CloseWrite or Modify".
と書かれている。
なので、こっちから2.0.7のrpmを入手
32bit版
http://www6.atomicorp.com/channels/atomic/centos/5/i386/RPMS/lsyncd-2.0.7-2.el5.art.i386.rpm
http://www6.atomicorp.com/channels/atomic/centos/6/i386/RPMS/lsyncd-2.0.7-2.el6.art.i686.rpm
64bit版
http://www6.atomicorp.com/channels/atomic/centos/5/x86_64/RPMS/lsyncd-2.0.7-2.el5.art.x86_64.rpm
http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/lsyncd-2.0.7-2.el6.art.x86_64.rpm
そして、サービス起動用のファイル/etc/init.d/lsyncdを作成してパーミッションを755に設定
#!/bin/bash # chkconfig: - 85 15 # description: lsyncd RETVAL=0 prog="/usr/bin/lsyncd" conf="/etc/lsyncd.conf" pidfile="/var/run/lsyncd.pid" . /etc/rc.d/init.d/functions start() { echo -n "Starting $prog:" daemon $prog $conf RETVAL=$? echo [ $RETVAL = 0 ] && touch $pidfile return $RETVAL } stop() { echo -n "Stopping $prog:" killproc $prog RETVAL=$? echo rm -f $pidfile return $RETVAL } case $1 in start ) start ;; stop ) stop ;; restart) stop && start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac次に設定ファイルを作成
settings = { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.stat", statusInterval = 1, inotifyMode = "CloseWrite or Modify", } sync{ default.rsync, source = "/var/log/httpd/", target = "/mnt/log/httpd/", rsyncOpts = {"-rlptgoD","--append","--max-delete=-1"}, maxDelays = 1 } sync{ default.rsync, source = "/var/log/mail/", target = "/mnt/log/mail/", rsyncOpts = {"-rlptgoD","--append","--max-delete=-1"}, maxDelays = 1 }ポイントとしては、inotifyModeに"CloseWrite or Modify"を指定することで、ファイルの更新かファイルハンドラがクローズされたかでイベントを検知するよう設定
rsyncOptsで--appendを指定することで、ログファイルのように追記更新型のファイル用に、同期先のファイルの置き換えではなく、追記で対応するように設定
--max-delete=-1を指定することで、同期元からファイルが削除されても同期先のファイルは消されないように設定 っという感じにしてみましたヾ(*・ω・)シ
あとは、サービスを起動するだけ
service lsyncd start
0 件のコメント:
コメントを投稿