|
2010-11-01
|
lsyncd同步记录
静态文件相对于动态程序在互联网中有先天的优势,因此,在网络内容发布中,我们一般优先选择静态化,但对多个服务器来说这又是一个问题,如果实时同步。
还好,lsyncd给我们提供了一个解决方案。
下载地址:http://code.google.com/p/lsyncd/
按照wiki安装后,写一个配置文件:
settings={
logfile="/var/log/lsyncd.log",
statusFile="/tmp/lsyncd.status",
}
sync{default.rsync,source="XXX",target="XXX",rsyncOps="-avzt",exclude={"XXX"},recursive=true}
source是你要同步的内容目录
target是你要同步的目标目录,可以是同机的其它目录,也可以是远程的地址(ssh的话,用user@host:XXX的形式)
rsyncOps是rsync的参数
exclude可以设置一些需要排除在外的东西
recursive当然是要求目录级深了,呵呵。
然后把它做成一个系统服务(debian/ubuntu):
#!/usr/bin/env bash
### BEGIN INIT INFO
# Provides: lsyncd
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop lsyncd daemon
### END INIT INFO
LSYNCD=/usr/bin/lsyncd
PID=/var/run/lsyncd/lsyncd.pid
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Start lsyncd."
$LSYNCD
;;
stop)
log_daemon_msg "Stop lsyncd."
killproc -p $PID
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/lsyncd {stnard|stop|restart}"
;;
esac
|
