百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

ahcoder 2025-05-05 13:38 11 浏览

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

(图片可点击放大查看)

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

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

相关推荐

WordPress外贸站架构深度剖析:如何实现秒级页面响应?

在搭建WordPress外贸独立站时,性能往往是影响转化的隐形杀手。下面分享几点实战经验,帮助你把响应速度从3秒降到1秒以内:1精准PHP版本与扩展选择推荐使用PHP8.1+,并启用Opcache...

nginx配置文件详解(nginx配置文档)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

网站总是受到攻击打不开怎么办(网站被攻击打不开)

最近我的网站流量呈上升的趋势,经常被同行恶意攻击,但是我的网站还是没有垮,我就详细给遇到和我同样问题的朋友们分享我的网站到底是如何防御住黑客攻击的,因为正常的情况下,我们的客户端发送请求到达服务器端,...

一文读懂限流算法及方案介绍(限流式的范围怎么算)

作者:京东科技康志兴应用场景现代互联网很多业务场景,比如秒杀、下单、查询商品详情,最大特点就是高并发,而往往我们的系统不能承受这么大的流量,继而产生了很多的应对措施:CDN、消息队列、多级缓存、异地...

HTTP/1.1、HTTP/2、HTTP/3 演变(http的发展)

HTTP基本概念HTTP是超文本传输协议,也就是HyperTextTransferProtocol。HTTP常见的状态码有哪些?1xx类状态码属于提示信息,是协议处理中的一种中间状态,实际...

Nginx负载均衡算法详解(5大主流算法)

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen睿哥。Nginx是大型架构的必备中间件,也是大厂经常考察的内容,下面我就全面来详解Nginx算法@mikechen轮...

Nginx从安装到高可用,一篇搞定(nginx安装windows)

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgc...

一文搞懂!7种常见的限流方式!(限流措施有哪些)

在实际应用中,每个系统或者服务都有其处理能力的极限(瓶颈),即便是微服务中有集群和分布式的夹持,也不能保证系统能应对任何大小的流量,因此,系统为了自保,需要对处理能力范围以外的流量进行“特殊照顾”(比...

探索Apache HttpClient超时时间如何设定?

大家好,我是哪吒。最近在项目遇到了通过HTTP请求,调用第三方接口的问题。一、ApacheHttpClient模拟POST请求,调用第三方接口ApacheHttpClient是一个流行的Java库...

Nginx 1.20.0 稳定版介绍(nginx1.21.0)

nginx最新稳定分支1.20已于2021年4月20日发布,新版本引入了来自1.19.x主线分支的新功能和错误修复,其中包括:使用OCSP进行客户端SSL证书验证引入ssl_rej...

图解常见的限流算法(计数器、滑动窗口计数、漏桶、令牌桶)

哈喽,大家好呀,我是呼噜噜,好久没有更新文章了,今天我们来聊聊在企业级项目中,常见的几种限流手段的原理及其实现什么场景需要限流随着互联网的业务发展,比如秒杀、双十一、618等这些我们耳熟能详,也有被人...

高并发场景下,Nginx性能如何提升10倍?

大家好,我是mikechen。在高并发场景,Nginx是流量入口的第一道防线,如果想拦截亿级流量,需要Nginx合理调优才能应对@mikechen。本文作者:陈睿|mikechen文章来源:mike...

Sentinel源码—8.限流算法和设计模式总结

大纲1.关于限流的概述2.高并发下的四大限流算法原理及实现3.Sentinel使用的设计模式总结1.关于限流的概述保护高并发系统的三把利器:缓存、降级和限流。限流就是通过限制请求的流量以达到保护系统的...

Nginx-性能优化(nginx性能优化)

前言这篇关于Nginx的性能优化,是我查阅资料研究所成,并没有用于实际生产环境,如若你想用于实践,请谨慎测试之后使用。Nginx性能优化,主要是减少磁盘io。请求头、请求体、响应体都在缓冲区操...

两步优化nginx,性能达到10万+并发

Nginx介绍nginx是一款来自俄罗斯开发人员开源的高性能的HTTP服务器和方向代理服务器,因为它的性能非常优秀,而且是免费,所以,在国内被广泛运用于web服务器、负载均衡服务器、邮件代理服务器。它...