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/
需求:将A服务器上/var/log/nginx/目录下文件实时同步到B服务器中,并排除error.log
*前提是有配置EPEL源。
yum install lsyncd
ssh-keygen -t rsa -b 4096
ssh-copy-id -p 8122 root@192.168.31.60
ssh -p 8122 root@192.168.31.60
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*
lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况排查配置文件问题。
lsyncd -nodaemon /etc/lsyncd.conf
如下图所示,当curl http://192.168.31.230触发了access.log变动时会触发同步。
如果没有报错直接退出后就可以使用systemctl start lsyncd启动lsyncd即可。
systemctl enable lsyncd.service
systemctl start lsyncd.service
tail -f /var/log/lsyncd/lsyncd.log
以上就是使用Lsyncd实现文件自动同步的过程。
要比之前的文章记一次利用GrayLog实现采集与备份云服务器Web访问日志的实现过程的方式更简单。
责任编辑:姜华 来源: 今日头条 LsyncdCentOS7(责任编辑:知识)
鹰君(00041.HK)授出499万份购股期权 惟须待承受人接纳方可作实
国家车用超级电容器系统工程技术研究中心通过验收 新筑股份受益明显
国科微(300672.SZ):股东陈岗解除质押245万股 占其所持股份比例22.32%
帅丰电器(605336.SH)拟推176.25万股限制性股票激励计划 授予价格为13.62元/股
银保监会:险资投资债转股投资计划实施分类管理 优化保险资产配置结构