lsyncd实时同步搭建

除了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

点赞

发表评论

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