rsync+lsyncd实现实时同步
1.接收端安装rsync,修改/etc/rsyncd.conf配置文件,然后启动服务。
uid = root
gid = root
use chroot = no
max connection = 4
secrets file = /etc/rsyncd.secrets
[test] path = /tmp/test auth users = bak read only = no
2.发送端安装rsync+lsyncd,修改/etc/lsyncd.conf配置文件,编辑密码文件(如果使用了密码同步),然后启动lsyncd服务。
settings = {
logfile = "/var/log/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1, -- 同步时间间隔
}
sync {
default.rsync,
source="/data0/test",
target="bak@172.16.225.222::test",
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
--delete = true,
_extra = {"--password-file=/etc/rsyncd.secrets"},
},
}
3.在发送端要同步的目录中添加、删除文件,查看接收端是否同步。
4.配置lsyncd日志文件轮转,防止日志文件太大
修改/etc/logrotate.d/lsyncd配置文件
/var/log/lsyncd/*log {
missingok
notifempty
sharedscripts
postrotate
/etc/rc.d/init.d/lsyncd restart 2>&1 > /dev/null || true
endscript
}
参考:http://openlinuxfly.blog.51cto.com/7120723/1679279,https://github.com/axkibe/lsyncd/blob/master/default-rsync.lua
如果使用rsync+Inotify-tools方式可参考:
http://www.osyunwei.com/archives/7435.html