news 2026/8/1 12:29:52

lsyncd + rsync 双向实时同步部署(centos stream 9)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
lsyncd + rsync 双向实时同步部署(centos stream 9)

环境说明
源服务器A:**192.168.1.149**(CentOS Stream 9)
目标服务器B:**192.168.1.148**(CentOS Stream 9)
同步目录:**/data/web/**
效果:**双向实时同步**(一边改,另一边自动同步)

一、两台机器都执行:基础准备
1. 安装 EPEL(lsyncd 必须)

dnf install -y epel-release dnf makecache

2. 安装 rsync + lsyncd

dnf install -y rsync lsyncd

3. 创建同步目录

mkdir -p /data/web

4. 关闭防火墙(企业内网推荐)

systemctl stop firewalld systemctl disable firewalld

5. 关闭 SELinux(避免权限拦截)

setenforce 0 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

6. 创建 lsyncd 日志目录

mkdir -p /var/log/lsyncd

二、两台机器互相配置免密 SSH(必须)

在 149 执行:

ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519 ssh-copy-id root@192.168.1.148

在 148 执行:

ssh-keygen -t ed25519 -N "" -f /root/.ssh/id_ed25519 ssh-copy-id root@192.168.1.149

双向验证(两台都试一下)

ssh root@192.168.1.148 date ssh root@192.168.1.149 date

不输入密码直接登录,即为成功。

三、配置 lsyncd(两台机器配置不同)

机器 A:192.168.1.149
编辑:

vim /etc/lsyncd.conf

写入完整配置(直接复制,无任何坑):

settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", pidfile = "/var/run/lsyncd.pid", nodaemon = false, maxProcesses = 5 } sync { default.rsync, source = "/data/web/", target = "192.168.1.148:/data/web/", delay = 1, rsync = { archive = true, compress = true, verbose = true } }

机器 B:192.168.1.148
编辑:

vim /etc/lsyncd.conf

写入:

settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", pidfile = "/var/run/lsyncd.pid", nodaemon = false, maxProcesses = 5 } sync { default.rsync, source = "/data/web/", target = "192.168.1.149:/data/web/", delay = 1, rsync = { archive = true, compress = true, verbose = true } }

四、两台机器都启动 lsyncd

systemctl enable --now lsyncd systemctl restart lsyncd systemctl status lsyncd

出现 **active (running)** 即为成功。

五、测试双向实时同步

在 149 上创建文件

touch /data/web/test_from_149.txt echo "test" > /data/web/test_from_149.txt

去 148 查看

ls /data/web/ cat /data/web/test_from_149.txt

在 148 上创建文件

touch /data/web/test_from_148.txt

去 149 查看

ls /data/web/

两边都能实时出现,**双向同步成功**。

六、如需开启"删除同步"(源删目标也删)

将配置中的

delete = false

改为

delete = true

然后重启:

systemctl restart lsyncd


七、查看日志(排错用)

tail -f /var/log/lsyncd/lsyncd.log


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 12:28:35

5分钟上手XUnity Auto Translator:游戏实时翻译与本地化实战指南

1. 项目概述:为什么我们需要游戏实时翻译? 如果你是一个狂热的单机游戏玩家,或者是一个独立游戏开发者,那么“语言不通”这个问题,你一定深有体会。面对Steam上琳琅满目的独立佳作,尤其是那些来自非英语国家…

作者头像 李华
网站建设 2026/8/1 12:26:53

SQLMap工具详解:从安装到实战的SQL注入测试指南

1. SQLMap工具概述与核心价值 SQLMap作为一款开源的自动化SQL注入工具,已经成为Web安全测试领域的瑞士军刀。我第一次接触这个工具是在2016年参加CTF比赛时,当时面对一个看似简单的登录框,手动测试两小时无果后,用SQLMap三分钟就拿…

作者头像 李华
网站建设 2026/8/1 12:26:01

树莓派3B固件包安装与维护全攻略:从定位到回滚

1. 项目概述:RPi3 B Package F 是什么? 如果你手头有一块树莓派3 Model B,并且最近在折腾一些需要特定软件包或固件的项目,那么“RPi3 B Package F”这个标题很可能让你心头一紧,或者眼前一亮。这听起来像是一个特定版…

作者头像 李华
网站建设 2026/8/1 12:24:39

C语言结构体数组赋值:安全处理字符串的三种方法与实践

1. 从“赋值”说起:为什么结构体数组的赋值是个技术活? 在C语言或者C的开发里,结构体数组是再常见不过的数据组织了。你可能用它来管理学生信息、设备配置、日志条目,或者任何需要批量处理、属性固定的数据集合。但就是这个看似基…

作者头像 李华
网站建设 2026/8/1 12:19:46

AI降痕工具对比:千笔与锐智的技术解析与应用

1. 项目背景与需求解析最近在学术圈和内容创作领域,一个新兴需求正在快速升温——如何有效降低文本的AI生成痕迹。作为一名长期关注内容创作工具的研究者,我注意到"千笔降AI率助手"和"锐智AI本科生专属"这两款工具在大学生群体中引发…

作者头像 李华
网站建设 2026/8/1 12:17:35

终极指南:OpenCore Legacy Patcher如何让十年老Mac运行最新macOS

终极指南:OpenCore Legacy Patcher如何让十年老Mac运行最新macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher&#x…

作者头像 李华