首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >rsync + lsyncd 的高效文件实时同步系统

rsync + lsyncd 的高效文件实时同步系统

原创
作者头像
智维攻城狮
发布2025-08-26 10:57:10
发布2025-08-26 10:57:10
4870
举报
文章被收录于专栏:Linux运维Linux运维

rsync + lsyncd 的高效文件实时同步系统

我们来直接上干货,帮你搭建一个 rsync + lsyncd 的高效文件实时同步系统。 这个方案在 低延迟、低资源占用、跨机房实时同步 场景里非常稳,尤其适合你这种追求高效落地的技术风格。


系统架构思路

核心原理

  • lsyncd(Live Syncing Daemon)实时监听本地目录变化(inotify 机制)
  • 变化事件触发 rsync 增量同步到目标服务器
  • 支持批量事件合并,减少频繁调用 rsync 带来的开销
  • rsync 负责数据传输与差异比对,支持压缩、断点续传、权限保持

架构图

代码语言:javascript
复制
[源服务器] --(inotify监听)--> [lsyncd] --(触发rsync)--> [目标服务器]
image-20250826105452996
image-20250826105452996

安装与配置

1. 安装依赖

代码语言:javascript
复制
# 源服务器 & 目标服务器都需要 rsync
sudo apt install rsync -y
​
# 源服务器安装 lsyncd
sudo apt install lsyncd -y

2. SSH 免密登录(避免每次输入密码)

代码语言:javascript
复制
ssh-keygen -t rsa
ssh-copy-id user@target_host

3. lsyncd 配置文件(/etc/lsyncd/lsyncd.conf.lua

代码语言:javascript
复制
settings {
    logfile    = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    statusInterval = 20
}
​
sync {
    default.rsync,
    source = "/data/www",   -- 需要同步的目录
    target = "user@target_host:/data/www",
    rsync = {
        archive  = true,    -- 保留权限、时间戳等
        compress = true,    -- 压缩传输
        verbose  = true,
        _extra   = {"--bwlimit=5000"} -- 限速,单位KB/s,可选
    },
    delay = 5  -- 延迟合并事件,减少频繁调用
}

4. 启动与开机自启

代码语言:javascript
复制
sudo systemctl enable lsyncd
sudo systemctl start lsyncd

性能优化建议

优化点

说明

inotify 限制

调整 /proc/sys/fs/inotify/max_user_watches,避免监听目录过多时报错

rsync 参数

--inplace 避免临时文件,--partial 支持断点续传

网络优化

内网可关闭压缩(compress=false),减少 CPU 占用

批量延迟

delay 参数可根据业务调整,减少频繁触发

安全

建议配合 --rsync-path="rsync --fake-super" 或 chroot 限制权限


适用场景

  • Web 服务器集群:代码、静态资源实时分发
  • 日志收集:边写边同步到分析节点
  • 跨机房热备:低延迟异地容灾

进阶玩法

  • 多目标同步:一台源机同时推送到多台目标机(多 sync{} 配置块)
  • 结合 Docker:容器卷挂载 + lsyncd 实现容器间实时同步
  • 结合 WAF/安全审计:同步前做文件校验,防止恶意代码传播

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • rsync + lsyncd 的高效文件实时同步系统
    • 系统架构思路
    • 安装与配置
      • 1. 安装依赖
      • 2. SSH 免密登录(避免每次输入密码)
      • 3. lsyncd 配置文件(/etc/lsyncd/lsyncd.conf.lua)
      • 4. 启动与开机自启
    • 性能优化建议
    • 适用场景
    • 进阶玩法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档