除了Lysncd其他的同步软件没用过,查资料发现Lysncd以外的都有不少问题,所以就直接使用Lysncd了。
Lsyncd 监视本地目录树事件监控器接口( inotify或fsevents ) 。通过秒级事件聚合,然后生成一个(或多个)进程来同步变化。默认情况下为结合rsync。 Lsyncd轻重量镜解决方案,安装不需要新的文件系统或块设备相对容易,并且不妨碍本地文件系统的性能。Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。我认为它最令人称道的特性是,完美解决了 inotify + rsync海量文件同步带来的文件频繁发送文件列表的问题 —— 通过时间延迟或累计触发事件次数实现。另外,它的配置方式很简单,lua本身就是一种配置语言,可读性非常强。lsyncd也有多种工作模式可以选择,本地目录cp,本地目录rsync,远程目录rsyncssh(以上抄袭自其他博客)。
安装过程也十分简单,因为已经有了epel源所以直接使用命令yum -y install lsyncd lua lua-devel即可完成安装。
Lsyncd配置文件存放在/etc/lsyncd.conf。使用命令vim /etc/lsyncd.conf编辑配置文件。
#setting一些配置 settings { logfile="/tmp/lsyncd.log", #日志文件位置 statusFile="/tmp/lsyncd.status", #状态文件 statusInterval=5, #写入状态的时间间隔,单位秒 maxDelays=3, #累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到 delay=60, # 累计事件,等待rsync同步延时时间,默认15秒 inotifyMode=Modify, #系统inotify指定监听的变化,可以是"Modify"、"CloseWrite" (默认) 或"CloseWrite or Modify" maxProcesses=10 #lsyncd最大进程数 } #本地目录同步到其他主机上,使用rsync模式 + rsyncssh,source表示本地目录,host表示目标主机,targetdir表示目标主机目录。 sync{default.rsyncssh, source="/xxx/yyy/", host="172.16.5.100", targetdir="/zzz/aaa/"} #本地目录同步,source表示源目录,targetdir表示目标目录。 sync{default.direct,source="/eee/rrr",targetdir="/qqq/www"}
配置完成后使用命令systemctl start lsyncd启动Lsyncd,完成后可使用命令systemctl status lsyncd查看状态,错误则通过配置文件中日志位置来排错(systemctl enable lsyncd设置开机自启)。
文章参考:
http://blog.51cto.com/ckl893/1788292
https://linux.cn/article-5849-1.html
文章评论