Lsyncd简单介绍
Lsyncd使用文件系统事件接口(inotify 或 fsevents)来监视本地文件和目录的更改。 Lsyncd 在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更改同步到远程文件系统。默认使用的同步方法是rsync。因此,Lsyncd 是一种轻量级的实时镜像解决方案。 Lsyncd 相对容易安装,不需要新的文件系统或块设备。Lysncd 不会影响本地文件系统的性能。作为 rsync 的替代方案,Lsyncd 还可以通过 rsync+ssh 推送更改。当文件或目录被重命名或移动到本地树中的新位置时,rsync+ssh 允许更有效的同步。(相比之下,plain rsync 通过删除旧文件然后重新传输整个文件来执行移动。) Lsyncd 2.2.1 要求 rsync >= 3.1。 官方文档:
https://lsyncd.github.io/lsyncd/
下面介绍CentOS7下使用Lsyncd实现文件实时同步
-
源服务器A:192.168.31.230
目标服务器B:192.168.31.60
需求:将A服务器上/var/log/nginx/目录下文件实时同步到B服务器中,并排除error.log*
1、A服务器上安装lsyncd
前提是有配置EPEL源。
yum install lsyncd
2、A服务器配置到B服务器的免密登录
ssh-keygen -t rsa -b 4096 ssh-copy-id -p 8122 root@192.168.31.60 ssh -p 8122 root@192.168.31.60
3、配置/etc/lsyncd.conf
mv /etc/lsyncd.conf /etc/lsyncd.conf_default vi /etc/lsyncd_exclude.lst vi /etc/lsyncd.conf 添加如下内容 /etc/lsyncd.conf settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/tmp/lsyncd.status", insist = true, inotifyMode = "Modify", statusInterval = 1 } sync { default.rsyncssh, source="/var/log/nginx/", host="192.168.31.60", targetdir="/data/logs_backup", excludeFrom="/etc/lsyncd_exclude.lst", maxDelays = 5, delay = 0, rsync = { archive = true, compress = false, -- verbose = true }, ssh = { port = 8122 } }
要排除error.log*。
vi /etc/lsyncd_exclude.lst error.log*
4、配置文件检查测试
lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况排查配置文件问题。
lsyncd -nodaemon /etc/lsyncd.conf
如下图所示,当curl http://192.168.31.230触发了access.log变动时会触发同步。 如果没有报错直接退出后就可以使用systemctl start lsyncd启动lsyncd即可。
5、设置为服务后台运行
systemctl enable lsyncd.service systemctl start lsyncd.service tail -f /var/log/lsyncd/lsyncd.log
转载请注明:IT运维空间 » 运维技术 » CentOS7下使用Lsyncd实现文件实时同步
发表评论