实时同步工具lsyncd

Lsyncd简介

Lysncd是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,通过inotify或者fsevents监控本地目录的变化事件,然后通过rsync同步。Lsyncd最强大之处在于简单高效传输海量数据并且Lsyncd支持多种工作模式。

yum安装Lsyncd

[root@nfs ~]#yum install -y lsyncd
[root@nfs ~]# rpm -qc lsyncd
/etc/logrotate.d/lsyncd
/etc/lsyncd.conf                            #==》Lsyncd主配置文件
/etc/sysconfig/lsyncd

lsyncd.conf配置选项说明

全局设置

--开头表示注释

logfile         定义日志文件
stausFile       定义状态文件
statusInterval  将lsyncd的状态写入上面的statusFile的间隔,默认10秒
nodaemon=true   表示不启用守护模式,默认
inotifyMode     指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses    同步进程的最大个数。假如同时有20个文件需要同步,而maxProcesses = 8,则最大能看到有8个rysnc进程
maxDelays       累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到

sync定义同步参数

default.rsync        本地目录之间同步,使用rsync,也可以达到使用ssh形式的远程rsync效果,或daemon方式连接远程rsyncd进程;
default.direct       本地目录之间同步,使用cp、rm等命令完成差异文件备份;
default.rsyncssh     同步到远程主机目录,rsync的ssh模式,需要使用key来认证

目录设置

source                        同步的源目录,使用绝对路径。
target                        定义目的地址.对应不同的模式有几种写法:
/tmp/dest                     本地目录同步,可用于direct和rsync模式
172.29.88.223:/tmp/dest       同步到远程服务器目录,可用于rsync和rsyncssh模式
excludeFrom                   排除选项,后面指定排除的列表文件,如excludeFrom = "/etc/lsyncd.exclude",如果是简单的排除,可以使用exclude = LIST。

为了保持target与souce完全同步,Lsyncd默认会delete = true来允许同步删除。它除了false,还有startup、running

true         Lsyncd将在目标上删除任何不在源中的内容。 在启动时和正常操作中被删除的内容。
false        在lsyncd启动后将在目标上不删除任何不在源中的内容, 在启动时和正常操作中被删除的内容。
startup      启动时将执行一次完全文件同步,保证完全一致;正常运行过程中不会删除target中的文件
running      启动前,增加的会同步,删除的不同步;正常运行过程中会删除target中的文件

 rsync选项

bwlimit      限速,单位kb/s,与rsync相同(这么重要的选项在文档里竟然没有标出)
compress     压缩传输默认为true。在带宽与cpu负载之间权衡,本地目录同步可以考虑把它设为false
perms        默认保留文件权限。

 

posted @ 2023-03-08 15:50  John_2011  阅读(390)  评论(0编辑  收藏  举报