凄く今更感があるけど lsyncd+rsyncd メモ
デフォルトで起動スクリプトが存在しないので拾うか適当に作る(下記はRedHatのドキュメントを参考に作成)
$ sudo vi /etc/init.d/rsyncd
#!/bin/bash
# chkconfig: 2345 98 1
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Source function library.
. /etc/rc.d/init.d/functions
[ -f /usr/bin/rsync ] || exit 0
case "$1" in
start)
action "Starting rsyncd: " /usr/bin/rsync --daemon
;;
stop)
action "Stopping rsyncd: " killall rsync
;;
*)
echo "Usage: rsyncd {start|stop}"
exit 1
esac
exit 0
実行権限の付与と自動起動の有効化
$ sudo chmod +x /etc/init.d/rsyncd
$ sudo chkconfig rsyncd on
$ sudo vi /etc/rsyncd.conf
uid = ec2-user #<-rsyncdを実行するユーザ
gid = ec2-user #<-rsyncdを実行するグループ
read only = no
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
[public_html]
path = /home/ec2-user/public_html #<-lsyncd/同期先となるディレクトリ指定
hosts allow = localhost 10.0.1.10/32 #<-アクセスを許可するホストを指定
hosts deny = *
read only = false
# vi /etc/logrotate.d/rsyncd
/var/log/rsyncd.log {
rotate 10
missingok
notifempty
sharedscripts
}
$ sudo service rsyncd start
$ ps -efww | grep rsync
$ sudo tail /var/log/rsyncd.log
$ sudo cp /etc/lsyncd.conf{,.orig}
$ sudo vi /etc/lsyncd.conf
-- Lua で記述されているので変更時には注意
-- delay = settings/delayでデフォルトの同期遅延15秒を3秒に変更
-- delete = true により削除も含めた完全同期にする
-- init = lsyncd 再起動時の同期を止めたい場合は false にする。
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1,
maxProcesses = 2,
nodaemon = false,
insist = 1,
delay = 3,
}
sync {
default.rsync,
source="/home/ec2-user/public_html",
target = '10.0.3.11::public_html/',
delete = true,
#init = false,
rsync={
archive = true,
owner = true,
compress = true,
_extra = {
"-a",
"--numeric-ids",
"--timeout=600",
"--contimeout=60",
},
},
}
lsyncdで監視/同期するファイル数を増やすためにKernelパラメータの値を増やす。
$ sudo vi /etc/sysctl.conf
...
## lsyncd inotify settings
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_watches = 2097152
確認
$ sudo sysctl -a | grep inotify
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 2097152
fs.inotify.max_queued_events = 32768
$ sudo chkconfig lsyncd on
$ sudo service lsyncd start
$ sudo tail -f /var/log/lsyncd/lsyncd.log
=>パーミッションやrsync先への疎通不能などのエラーが出力されていない事を確認
以上