
我们来直接上干货,帮你搭建一个 rsync + lsyncd 的高效文件实时同步系统。 这个方案在 低延迟、低资源占用、跨机房实时同步 场景里非常稳,尤其适合你这种追求高效落地的技术风格。
核心原理
架构图
[源服务器] --(inotify监听)--> [lsyncd] --(触发rsync)--> [目标服务器]
# 源服务器 & 目标服务器都需要 rsync
sudo apt install rsync -y
# 源服务器安装 lsyncd
sudo apt install lsyncd -yssh-keygen -t rsa
ssh-copy-id user@target_host/etc/lsyncd/lsyncd.conf.lua)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 -- 延迟合并事件,减少频繁调用
}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 限制权限 |
sync{} 配置块)原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。