lsyncd同步配置案例:171 → 172 WebFuture 实时同步部署
来源:本站原创
点击数: 次
发布时间:2026年08月19日
1. 同步架构
171 主服务器 10.0.64.171 /data/www/webfuture │ lsyncd │ rsync + SSH │ ▼ 172 从服务器 10.0.64.172 /data/www/webfuture
lsyncd 只安装在 171
172 不需要安装 lsyncd
172 只需要
rsync + sshd同步方向:171 → 172
lsyncd 使用 root 运行
WebFuture 文件保持
www-data:www-data
2. 安装软件
171服务器安装lsyncd rsync
yum install lsyncd rsync -y
172服务器安装rsync
yum install rsync -y
确认 SSH 端口:
ss -lntp | grep 1022
3. 配置 SSH 免密
171 必须可以免密登录 172:
ssh -p1022 root@10.0.64.172
使用:
/root/.ssh/id_rsa
确保不需要输入密码。
4. 准备同步目录
两台服务器:
mkdir -p /data/www/webfuture chown -R www-data:www-data /data/www/webfuture
检查用户:
id www-data
最好保证 171、172 的 www-data UID/GID 一致。
5. 先手动测试 rsync
在 171:
rsync -aHAXv \ -e "ssh -p1022 -i /root/.ssh/id_rsa" \ /data/www/webfuture/ \ root@10.0.64.172:/data/www/webfuture/
确认 172 文件及权限正常后,再启用 lsyncd。
6. 配置 lsyncd
171 创建:
/etc/lsyncd.conf
配置:
-- ============================================================
-- Lsyncd 全局配置
-- ============================================================
settings {
logfile = "/var/log/lsyncd.log", -- 日志
statusFile = "/var/log/lsyncd.status", -- 状态文件
statusInterval = 20, -- 状态更新间隔
inotifyMode = "CloseWrite", -- 文件写入完成后同步
}
sync {
default.rsync,
source = "/data/www/webfuture", -- 源目录
target = "root@10.0.64.172:/data/www/webfuture", -- 目标目录
delay = 0, -- 立即同步
rsync = {
archive = true, -- 保留文件属性
verbose = true, -- 显示详细信息
compress = false, -- 不压缩
_extra = {
"-e",
"ssh -p1022 -i /root/.ssh/id_rsa", -- SSH端口和密钥
"--chown=www-data:www-data", -- 目标文件权限
"--exclude=App_Data/" -- 排除App_Data目录
}
}
}最关键的 4 个配置
source = "/data/www/webfuture"
监听 171 的 WebFuture目录。
target = "root@10.0.64.172:/data/www/webfuture"
同步到 172。
delay = 0
0 秒=实时监听,检测到目录或文件变化后立即触发同步。
archive = true
使用 rsync -a,尽量保持源文件的权限、属主、属组、时间等属性。
7. 启动 lsyncd
在171服务器启动服务:
systemctl daemon-reload systemctl enable lsyncd systemctl start lsyncd
检查:
systemctl status lsyncd
查看同步日志:
tail -f /var/log/lsyncd.log
8. 测试实时同步
新增文件
171:
touch /data/www/webfuture/test.txt
检查 172:
ls -l /data/www/webfuture/test.txt
修改文件
echo "hello" >> /data/www/webfuture/test.txt
删除文件
rm -f /data/www/webfuture/test.txt
确认 172 上也被删除。
9. 最终运行方式
部署完成以后,不再需要原来的:
crontab
实时同步流程:
171 WebFuture 目录 ↓ 新增 / 修改 / 删除 ↓ lsyncd ↓ inotify ↓ rsync + SSH ↓ 172 WebFuture 目录
建议生产环境另外保留一个每天凌晨执行的全量 rsync 作为兜底,防止 lsyncd 服务异常或 inotify 事件丢失。
