Press "Enter" to skip to content

Lsyncd 数据实时同步工具

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo #EPEL源,用以安装cmake2.8
yum makecache
yum install lua lua-static lua-devel cmake28 rsync #lsyncd依赖lua,使用cmake2.8以上编译,rsync3.06以上
wget https://github.com/axkibe/lsyncd/archive/release-2.2.0.tar.gz
tar -zxvf release-2.2.0.tar.gz
cd lsyncd-release-2.2.0/
cmake28 -DCMAKE_INSTALL_PREFIX=/home/app/lsyncd
make
make install
echo 5000000 > /proc/sys/fs/inotify/max_user_watches
vim /etc/sysctl.conf
-------------------------------------------------------------------------------
fs.inotify.max_user_watches = 5000000
-------------------------------------------------------------------------------
vim /home/app/lsyncd/etc/lsyncd.conf
-------------------------------------------------------------------------------
参数说明:
settings {
logfile ="/var/log/lsyncd.log", #定义日志文件
statusFile ="/tmp/lsyncd.status", #定义状态文件
statusInterval = 5, #将lsyncd的状态写入上面的statusFile的间隔,默认10秒
maxDelays = 3, #累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到
inotifyMode = CloseWrite, #指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses = 200 #同步进程的最大个数。假如同时有20个文件需要同步,而maxProcesses = 8,则最大能看到有8个rysnc进程
}
sync {
default.rsync,
source = "/home/app",
target = "root@192.168.130.129:/home/app",#需先配置免密
init = false, #这是一个优化选项,当init = false,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是true
delay = 15, #累计事件,等待rsync同步延时时间,默认15秒(最大累计到1000个不可合并的事件)。也就是15s内监控目录下发生的改动,会累积到一次rsync同步,避免过于频繁的同步。(可合并的意思是,15s内两次修改了同一文件,最后只同步最新的文件)
delete = false, #不允许同步删除文件
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
}
}
更具体的参数以及示例可参考:https://segmentfault.com/a/1190000002737213

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注