CentOS7下使用Lsyncd实现文件实时同步

运维 系统运维
Lsyncd 在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更改同步到远程文件系统。默认使用的同步方法是rsync。因此,Lsyncd 是一种轻量级的实时镜像解决方案。

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

CentOS7下使用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

CentOS7下使用Lsyncd实现文件实时同步

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*

CentOS7下使用Lsyncd实现文件实时同步

CentOS7下使用Lsyncd实现文件实时同步

4、配置文件检查测试

lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况排查配置文件问题。

lsyncd -nodaemon /etc/lsyncd.conf

如下图所示,当curl http://192.168.31.230触发了access.log变动时会触发同步。

CentOS7下使用Lsyncd实现文件实时同步

如果没有报错直接退出后就可以使用systemctl start lsyncd启动lsyncd即可。

5、设置为服务后台运行

systemctl enable lsyncd.service
systemctl start lsyncd.service
tail -f /var/log/lsyncd/lsyncd.log

CentOS7下使用Lsyncd实现文件实时同步

以上就是使用Lsyncd实现文件自动同步的过程。

要比之前的文章记一次利用GrayLog实现采集与备份云服务器Web访问日志的实现过程的方式更简单。

责任编辑:姜华 来源: 今日头条
相关推荐

2021-05-12 07:42:41

CentOS7Python3系统

2021-05-14 08:05:11

Centos7 Unit配置

2022-02-14 07:47:30

巡风CentOS7漏洞扫描

2023-11-09 07:44:21

2020-11-06 08:05:05

CentOS

2020-08-28 11:20:01

CentOS7RocketMQ 4.运维

2017-02-27 11:06:59

RHEL7CentOS7密码

2021-01-08 09:02:19

CentOS7Prometheus监控

2022-05-23 07:48:10

zabbix监控CentOS7

2011-06-22 10:37:08

rsyncinotify

2010-03-31 13:04:37

CentOS安装

2020-09-21 11:30:28

CanalMySQL数据库

2010-05-21 14:53:25

Centos下SVN的

2020-07-16 08:37:39

NginxCentOS7搭建

2014-10-09 10:04:23

CentOS集群

2021-06-29 12:10:48

CentOSMySQL工具

2014-08-14 10:52:49

windowslinux

2010-06-01 09:25:14

Centos下安装mr

2021-04-12 07:41:57

Centos7系统分布式集群

2022-07-20 23:15:11

Flink数据集CDC
点赞
收藏

51CTO技术栈公众号