前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转服务器】CentOS通过lsyncd实现文件同步

【玩转服务器】CentOS通过lsyncd实现文件同步

原创
作者头像
参谋带个长
发布2023-11-28 09:51:08
5007
发布2023-11-28 09:51:08
举报

lsyncd介绍

lsyncd 是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。解决了 inotify + rsync海量文件同步带来的文件频繁发送文件列表的问题 —— 通过时间延迟或累计触发事件次数实现。

相对于通过rsync+inotify实现文件实时同步,lsyncd在设置上的优势是只需配置本地服务器,无需配置远程服务器。

如需了解rsync+inotify实现文件实时同步的方式,可参考 【玩转服务器】CentOS通过rsync+inotify实现文件实时同步

本文主要介绍在CentOS操作系统中以lsyncd方式实现文件同步的步骤。

实现目标

本地服务器192.168.1.1,配置 lsyncd 服务

远程服务器192.168.1.2,无需配置

远程服务器192.168.1.3,无需配置(远程服务器可设置多台)

在本地服务器指定目录文件发生变化时,实时同步至远程服务器。此场景可用于文件的实时备份或主从同步。

具体实践(配置均在本地服务器上操作)

1、安装lsyncd

代码语言:javascript
复制
yum install lsyncd -y

2、配置lsyncd.conf

代码语言:javascript
复制
vim /etc/lsyncd.conf

3、输入以下内容

代码语言:javascript
复制
-- 全局设置
settings {
 logfile = "/var/log/lsyncd/lsyncd.log",
 statusFile = "/var/log/lsyncd/lsyncd.status",
 statusInterval = 10
}

-- 定义同步参数,多台服务器可定义多个sync模块
sync {
 default.rsyncssh,

 -- 同步的源目录,使用绝对路径
 source = "/data",

 -- 远程服务器IP
 host="192.168.1.2",

 -- 远程服务器目录
 targetdir = "/backup",

 -- 指定排除的文件列表
 excludeFrom = "/etc/lsyncd_exclude.lst",

 -- 累计事件,等待rsync同步延时时间,默认15秒,最大累计到1000个不可合并的事件
 -- 合并事件是指两次修改了同一文件,最后只同步最新的文件
 -- 默认15秒内监控目录下发生的改动,会累积到一次rsync同步,避免过于频繁的同步
 delay = 15,

 rsync = {
  archive = true,
  compress = true,
  verbose = true,
 },
}

4、指定不同步的文件列表

代码语言:javascript
复制
vim /etc/lsyncd_exclude.lst

以下内容表示不同步的文件类型或目录,可根据实际情况进行修改

代码语言:javascript
复制
*.log
runtime/

5、生成ssh证书,并将公钥拷贝至远程服务器

代码语言:javascript
复制
# 生成密钥
ssh-keygen

# 拷贝公钥至远程服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.3

此处为设置Linux服务器SSH免密登录,具体操作步骤和知识点可参考 【玩转服务器】Linux服务器SSH远程免密登录

6、检测配置文件并启动

代码语言:javascript
复制
# 检测
lsyncd -nodaemon /etc/lsyncd.conf

# 启动
systemctl start lsyncd.service

测试同步效果

1、在本地服务器运行命令

代码语言:javascript
复制
mkdir /data/test1

touch /data/1.txt

2、在远程服务器查看同步情况

代码语言:javascript
复制
ls /backup/

# 可能会返回目录test1,文件1.txt
# 如未显示可能未达到默认最小同步时间,默认为15秒

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • lsyncd介绍
  • 实现目标
  • 具体实践(配置均在本地服务器上操作)
    • 1、安装lsyncd
      • 2、配置lsyncd.conf
        • 3、输入以下内容
          • 4、指定不同步的文件列表
            • 5、生成ssh证书,并将公钥拷贝至远程服务器
              • 6、检测配置文件并启动
              • 测试同步效果
                • 1、在本地服务器运行命令
                  • 2、在远程服务器查看同步情况
                  相关产品与服务
                  云服务器
                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档