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

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

CentOS7下使用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访问日志的实现过程的方式更简单。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10438

(0)
凯影的头像凯影
上一篇 2023年12月7日 下午3:17
下一篇 2023年12月8日 下午2:18

相关推荐

  • Linux网卡异常:解决Device eth0 does not seem to be present 

    一:故障现象 二:解决方法 (1)打开70-persistent-net.rules,记录下eth1网卡的mac地址: 记录下,eth1网卡的mac地址00:50:56:b9:22:fa (2).打开ifcfg-eth0,更改DEVICE名和MAC地址: (3).重启网络

    2022年8月24日
    1.7K00
  • Redis数据备份与恢复

    一、备份 1、cmd命令下,找到redis安装目录 2、创建dump.rdb文件 该命令将在 redis 备份目录中创建dump.rdb文件。 3、查看备份路径 备份后的文件名:dump.rdb 二、恢复 1、将dump.rdb拷贝到目标机,备份文件的目录下 2、重启redis服务 3、打开客户端刷新就能看到新的数据了 PS: 如果电脑安装了两个redis客…

    2022年11月12日
    1.2K00
  • 实验案例:日志分析及系统故障修复

    公司使用的Linux服务器越来越多,经常会有个别服务器出现启动引导、文件系统等故障。为了避免出现上述故障时,无法快速定位故障原因与及时处理故障,公司新招的运维人员小王需要提前进行排障演练并熟悉系统内各种日志文件,以便在需要时能够及时修复系统故障。 日志文件分析 在终端tty3中尝试以不存在的用户账号Administrator进行登录 新建用户账号admin并…

    2024年6月25日
    1.6K00
  • 解决crond引发大量sendmail、postdrop进程导致内存使用过大问题

    现象:客户反馈机器卡顿,上面只运行了一个宝塔,疑似中了木马 分析过程:top发现内存使用过高,ps -aux发现大量postdrop、sendmail、crond进程,而postdrop是由sendmail启动的,sendmail是由crond启动的。 crond在执行脚本时会将脚本输出信息以邮件的形式发送给系统用户,所以必然要调用sendmail,而sen…

    2022年12月6日
    1.9K00
  • rsync的搭建与使用

    rsync是数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。 已支持跨平台,可以在Windows与Linux间进行数据同步。 Ubuntu安装 Centos安装 基本用法 rsync语法有三种,分别是本地到本地形式Local to Local,本地到远程Local to Remot…

    2022年11月19日
    1.3K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信