lsyncd取代rsync+inotify

Lsyncd (Live Syncing Daemon) 是一款用来同步本地和远程目录的一款应用,他通过监听本地目录树中的事件监控接口(inotify或者fsevents),然后每隔几秒将这些监听事件合并并通过产生一个或多个进程来同步这些文件的改变(默认情况下使用rsync)。因此lsyncd基本不会影响本地文件系统性能。

本例使用centos7作为演示使用lsyncd单向同步本地文件夹/www至远程目录/www,并排除/www/logs文件夹不进行同步

准备工作:需要事先配置好本地和远程服务器之间的ssh免密秘钥对登陆

一、安装lsyncd
yum -y install lsyncd

二、创建配置文件
创建/etc/lsyncd.exclude排除文件和目录列表
touch /etc/lsyncd.exclude

文件内容如下(里面的文件是相对于/www目录的相对路径,每行一个)
cat /etc/lsyncd.exclude
/logs

创建lsyncd配置文件
vim /etc/lsyncd.conf
settings {
logfile = “/var/log/lsyncd.log”,
statusFile = “/var/log/lsyncd-status.log”,
statusInterval = 20
}sync {
default.rsyncssh,
source=”/www/”,
host=”10.26.142.179″,
excludeFrom=”/etc/lsyncd.exclude”,
targetdir=”/www/”,
rsync = {
archive = true,
compress = false,
whole_file = false
},
ssh = {
port = 22
}
}

对配置文件的说明如下
logfile表示日志路径
statusFile 文件同步状态日志路径
statusInterval 最少每20秒写入status file
source 要同步的本地文件夹
host 远程服务器
excludeFrom 从此文件获取需要排除在外不同步的文件或文件夹
targetdir 目的文件夹
rsync 这下面都是rsync的选项
ssh 这下面都是ssh的选项

rsync选项说明如下
-a, –archive 存档模式; 等于 -rlptgoD
-r 递归模式
-l 复制链接
-p 保持权限
-t 保持修改时间
-g 保持权限组
-o 保持属主
-D 和–devices –specials相同
–devices 保持设备文件
–specials 保持特殊文件
-W –whole-file 传输整个文件(不使用delta-xfer算法)

发表评论

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