lsyncd – 数据实时同步工具(含教程)

lsyncd(数据实时同步工具)简介

lsyncd是一个集成了inotify和rsync工具的数据实时同步工具,能够用于同步本地目录与远程目标目录的数据。它通过监测本地目录的变化,能够实现自动启动rsync进行同步,实现本地目录到远程目标的单向同步。相比传统同步工具,该工具更加易于安装部署,不需要额外的文件系统或设备,也不会影响本地文件系统性能。它支持通过配置文件进行细粒度自定义,可以通过Lua脚本进行扩展。

该工具是一个功能强大且灵活的实时目录同步工具,适合用于同步本地数据到远程服务器。

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

全局设置

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 默认保留文件权限。

相关文章