两台CentOS服务器如何实时同步?,用什么工具最稳定?

两台CentOS服务器要实现实时同步,最靠谱的免费方案是rsync配合inotify实时触发,做好免密登录与排除规则,秒级完成单向同步;如果追求更省心,用lsyncd封装底层逻辑,半小时内能搭好生产级环境。

先想清楚:你说的是同步还是备份

很多人把“同步”和“备份”混为一谈,备份是把数据复制一份放起来,同步是让两台机器上的数据时刻保持一致,实时同步的核心诉求是:主服务器上文件一变,备服务器立刻跟上。

【我的世界】centos7服务器搭建教程
加载中
【我的世界】centos7服务器搭建教程

场景不同,方案完全不同,比如两台Nginx负载均衡的服务器,静态资源要同步;两台数据库服务器,不能用文件同步方案去搞;两台应用服务器随便玩玩,rsync就够;要做高可用切换,那就得上DRBD,下面说的都是针对文件级别的同步,数据库请走主从复制,这不是一回事。

centos文件实时同步:为什么cron加rsync不够用

网上大量教程告诉你用crontab定时跑rsync,这方案能用但谈不上“实时”,cron最小粒度是每分钟执行一次,意味着最多有60秒的延迟窗口,文件在这60秒内变了两次,二次rsync基于增量比对也能追平,但生产环境里60秒能发生很多事。

行业共识认为,真正的实时同步必须满足两个条件:

  • 事件触发:文件变动立刻感知,而不是等定时器
  • 增量传输:只传变化的部分,不整个目录重扫

rsync本身解决不了“实时”这个感知问题,它只是个搬运工,感知文件变化需要另一个工具,也就是inotify,inotify是Linux内核提供的文件系统事件通知机制,文件被写入、改名、删除时,内核会主动告诉你。

rsync和inotify什么区别:各司其职的组合

rsync是传输层,inotify是感知层,两者不是替代关系,是协作关系。

  • rsync负责把A机器的文件推到B机器,支持增量、支持压缩、支持断点续传
  • inotify负责盯住指定目录,一旦有变化就喊rsync开工

常见的操作路径分四步走。

第一步:配置免密登录

ssh-keygen生成密钥,把公钥放到目标机的authorized_keys里,这个步骤不用多解释,两台机器之间不可能每次同步都输密码。

第二步:写同步脚本

#!/bin/bash
src=/data/www/
dest=backup@192.168.1.20:/data/www/
/usr/bin/inotifywait -mrq -e modify,create,move,delete /data/www/ | while read file
do
    rsync -avz --delete --exclude='.log' $src $dest
done

这里有个关键点:rsync必须加--delete参数,否则源端删了文件,目标端还留着,同步就不完整,排除日志文件之类的高频变动目录,能大幅降低传输负载。

两台CentOS服务器如何实时同步?,用什么工具最稳定?

第三步:用inotify-tools监听

运行上面的脚本,inotifywait会持续监听/data/www目录,每次有变动,rsync全量增量推一次。

第四步:设置开机自启

把脚本写进/etc/rc.local或做成systemd服务。

这套方案的优缺点非常明显,优点是纯命令行、无额外依赖、CentOS自带的rsync就能干活,缺点是脚本逻辑太简单,如果文件变动特别频繁,rsync进程还没跑完,下一个触发又来了,会出现进程堆积,生产环境建议加个锁,或者直接换lsyncd。

两台Linux服务器数据同步方案:lsyncd更省心

既然手动写脚本有坑,不如用现成工具,lsyncd就是把inotify和rsync做了封装,支持进程池、失败重试、延迟汇总,稳定性和并发控制比手写脚本靠谱得多。

安装lsyncd在CentOS上非常简单:

yum install epel-release
yum install lsyncd

配置文件位于/etc/lsyncd.conf,核心配置如下:

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    inotifyMode = "CloseWrite",
    maxProcesses = 8
}
sync {
    default.rsync,
    source = "/data/www",
    target = "backup@192.168.1.20:/data/www",
    exclude = { ".log", ".git" },
    rsync = {
        binary = "/usr/bin/rsync",
        archive = true,
        compress = true,
        delete = true
    }
}

启动后,lsyncd会自动拉起inotify,把文件事件排队处理,相比手动脚本,lsyncd的优势在于:

  • 事件聚合:一秒内多次改动合并成一次传输
  • 失败重试:网络抖动导致同步失败会自动重来
  • 进度可查:日志和状态文件看得见同步到哪了

多数情况下,lsyncd是这个需求的最佳平衡点,配置简单,行为可预测,故障恢复不用人盯。

双向同步怎么搞:syncthing的适用场景

上面说的都是单向同步,主从架构,实际场景里经常遇到两台服务器都要写数据,比如有两个Web节点,各自产生用户上传文件,这种双向同步用rsync和lsyncd都吃力,因为两边都在变,同步方向无法简单定义。

Syncthing就是干这个的,它基于P2P协议,不依赖中心服务器,两台CentOS之间直接建立加密通道做双向实时同步,CentOS上装Syncthing稍微繁琐一点,需要下载二进制或者用官方仓库,但走完一遍也就十几分钟。

配置思路是:

  • 两台机器都安装Syncthing
  • 各自指定要共享的目录
  • 互相添加设备ID
  • 选择“发送和接收”模式
  • 两台CentOS服务器如何实时同步?,用什么工具最稳定?

Syncthing对文件变动的感知同样是秒级的,支持版本冲突处理,理论上不存在“最后写入覆盖”的恶性丢数据问题。

不过要泼一盆冷水:双向同步解决的是数据一致性问题,解决不了数据正确性问题,如果A机器上的文件被误删,同步会把B机器上的同款文件也删掉,误操作是双向同步的最大风险,生产环境更稳妥的做法是:双向同步加定时快照,备份是备份,同步是同步。

简米云和酷番云的centos服务器怎么同步

两台云服务器之间做同步,和物理机房内网没有本质区别,但有几个云环境特有的坑。

云服务器通常有安全组和防火墙两层访问控制,rsync默认走873端口,云服务商的安全策略默认封掉这个端口,你需要在安全组入方向放行873端口,或者干脆用ssh通道的方式跑rsync,走22端口更省事,和lsyncd配合时,推荐用ssh模式而非rsync daemon模式,少开一个端口少一分暴露面。

另一个问题是跨区域的内网不通,比如一台在华北,一台在华南,公网传输的延迟和丢包率都比较明显,建议加个带宽限制,避免同步任务把业务带宽占满:

rsync {
    bwlimit = 5000
}

这里的5000单位是KB/s,就是限速5MB/s,根据文件的平均大小和日增量调这个参数。

云服务器同步慢怎么排查,建议按这个顺序查:

  • ping一下对端IP,看基础延迟
  • 看rsync有没有走压缩,图片视频文件压缩意义不大还多吃CPU
  • 检查目标端磁盘是否写满
  • 看两端系统时间是否一致,时间偏移会导致免密登录失败

备选方案:单机双盘与DRBD高可用

如果两台服务器做的是高可用集群,文件同步只是表象,底层要求是数据不丢、切换无损,这种情况下文件级同步是不够的,推荐用DRBD(分布式块设备复制)。

DRBD工作在内核层,把整个块设备的内容实时镜像到对端,应用层完全无感,读写的是本机磁盘,底层自动复制到另一台,Oracle RAC、MySQL高可用这类场景经常见到DRBD。

优点:

  • 数据实时性最高,块级别复制无文件系统损耗
  • 切换时数据一致性有保证
  • 不需要额外通知机制

缺点同样明显:

  • 要求主备两边磁盘大小一致或备端不小于主端
  • 对网络质量依赖高,延迟大时性能下降明显
  • 不支持跨地域远距离部署,一般要求同机房或内网延迟低于10ms

如果同时满足“数据极其重要”和“两台机器距离近”这两个条件,DRBD比任何文件级同步都靠谱,但反过来,只是同步个静态资源,用DRBD就是杀鸡用牛刀。

两台CentOS服务器如何实时同步?,用什么工具最稳定?

性能调优与常见坑

实时同步方案落地后,有四个问题是高频故障点,提前处理能省去后面大量麻烦。

避免回环同步

两边如果互相同步同一个目录,A收到B推过来的文件,会认为这是本地变化,再次推回给B,处理方式是配置排除规则,或者在同步标志上做文章,lsyncd默认防回环做得比较好,但手动脚本容易踩这个坑。

inotify监控句柄上限

服务器上被监听的文件数超过系统上限时,inotify会报告no space left on device,检查方法:

cat /proc/sys/fs/inotify/max_user_watches

小文件特别多的目录建议把这个值调大到524288:

sysctl -w fs.inotify.max_user_watches=524288

rsync进程堆积

文件变动瞬间数量极大时,上一次同步还没跑完,下一次又触发,手动脚本尤其容易出现这个问题,lsyncd的maxProcesses参数控制并发数,默认8个子进程,不够可以加到16,但注意瓶颈一般在对端磁盘I/O。

权限和属主错乱

同步过去的文件属主和本机不一致,导致服务启动失败,rsync加-a参数会保留属主和权限,但前提是源端和目标端的uid/gid一致,跨机器保持同一套用户体系,或者在rsync参数中把owner和group固定映射。

两台centos服务器怎么做实时同步:问题速查

Q: 两台centos服务器实时同步,选rsync还是syncthing?

A: 主从架构、单向复制选rsync配合inotify或lsyncd,逻辑清晰且资源占用小,两台服务器都要产生文件修改,选Syncthing,它天然支持双向同步和版本冲突处理。

Q: 实时同步断了之后,等到网络恢复会自动补传吗?

A: 手动inotify脚本不会,lsyncd配置了失败重试会自动补传,Syncthing具备持续重连机制,网络中断期间文件持续变化,恢复后lsyncd传最新的状态即可,Syncthing则同步完整的版本历史。

Q: rsync同步慢怎么排查,考虑换传输方式吗?

A: 先看是对小文件海量处理慢,还是大文件带宽受限,前者建议加--inplace参数避免每次创建新文件,后者调整bwlimit限速并检查云服务器带宽是否跑满,慢的问题一般出在策略而非工具本身。

两台CentOS服务器实时同步的落地方案,本质上是看清楚业务写入方向和延迟容忍度,再决定用哪套工具链,单向容灾用lsyncd,双向共享用Syncthing,强一致高可用用DRBD,按这个思路选型,不会跑偏。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/720023.html

赞 (0)
如何拆解降低直播端到端延迟的环节?,直播延迟怎么优化
上一篇 2026年10月7日 06:17
QQ炫舞连不上版本服务器怎么办,连接失败原因有哪些?
下一篇 2026年10月7日 06:18

相关推荐

  • 服务器ip地址映射怎么设置,服务器IP映射配置教程

    服务器IP地址映射的核心价值在于实现网络资源的灵活调度、安全隔离与高效访问,它是连接内部私有网络与外部公网环境的关键桥梁,直接决定了业务系统的可用性与安全性,通过合理的映射策略,企业能够以有限的公网IP资源支撑海量内部服务,同时隐藏真实网络拓扑,极大降低被攻击的风险,技术原理与核心逻辑网络通信的基础在于IP地址……

    2026年3月30日
    9400
  • 手机QQ邮箱代收服务器怎么设置?需要哪些参数?

    手机QQ邮箱代收服务器的设置核心很简单:在QQ邮箱App的“添加账户”中,根据你的需求选择IMAP或POP3协议,正确填写对应服务器的地址、端口号,并开启独立密码(授权码),整个配置过程大约需要5分钟,这篇指南直接给出2026年最新的通用参数和分步骤拆解,带你绕开常见的“收不了信”“连接超时”坑位,手机qq邮箱……

    2026年8月27日
    2400
  • 服务器1t内存有什么用?1t内存服务器适合跑什么业务

    服务器配置1TB内存已成为处理大规模并发、海量数据库及实时计算任务的基准线,这一配置不仅解决了传统架构下的性能瓶颈,更通过极高的数据驻留率,将业务响应速度提升至微秒级,显著降低了总体拥有成本(TCO),是企业构建高性能计算集群或核心数据库服务的理想选择,核心价值:打破I/O瓶颈,实现全内存计算对于现代企业级应用……

    2026年4月6日
    8700
  • AIoT智能是什么意思,AIoT智能有哪些应用场景

    AIoT智能是人工智能(AI)与物联网(IoT)的深度融合,其核心本质在于“万物智联”,即通过人工智能技术赋予物联网设备自主感知、分析与决策的能力,实现从“万物互联”向“万物智联”的跨越,这一技术范式并非简单的物理叠加,而是数据价值挖掘与自动化执行的闭环系统,旨在构建一个能够主动服务人类需求的智能生态系统, 核……

    2026年3月21日
    9700
  • ajax请求数据库出错怎么办?如何解决ajax请求数据库报错

    AJAX请求数据库出错的核心原因通常在于后端接口未正确返回JSON格式数据、跨域资源共享(CORS)配置缺失或SQL注入防护拦截,解决的关键在于统一前后端数据协议并检查服务器日志,在Web开发中,前端通过AJAX异步获取数据是常态,但一旦请求失败,排查过程往往令人头疼,这不仅仅是代码报错那么简单,它涉及网络层……

    2026年5月31日
    5100
  • aix指令和linux指令有什么区别?aix常用命令大全

    AIX指令与Linux指令在底层逻辑上高度统一,均遵循POSIX标准,这是企业级系统管理的核心结论,对于系统运维工程师而言,掌握两者差异的关键在于理解“同源异构”的特性:AIX作为IBM Power架构的专属系统,其指令设计更侧重于硬件资源的精细化管控与逻辑分区(LPAR)的稳定性;而Linux作为开源生态的代……

    2026年3月13日
    13400
  • 服务器FTP返回数据失败怎么办,服务器FTP返回数据异常原因及解决方法

    服务器FTP返回数据时,响应延迟、格式错误或连接中断是企业数据集成失败的三大主因,直接影响业务连续性与决策时效性,在工业自动化、金融交易、医疗影像传输等高时效场景中,FTP(文件传输协议)作为底层数据通道,其返回数据的可靠性直接决定上层系统稳定性,本文基于100+企业FTP运维案例与RFC 959协议深度实践……

    2026年4月15日
    6400
  • 广州虚拟主机安装wordpress难吗?广州虚拟主机怎么安装wordpress

    在广州节点虚拟主机上安装WordPress,核心在于选配支持PHP8.2+与MySQL8.0的华南机房主机,并通过宝塔面板或标准FTP流程完成程序部署与数据库挂载,广州虚拟主机环境选配与基准测试华南机房性能指标拆解搭建网站如同选址建楼,地基决定上限,针对广州外贸及内销企业,主机物理距离直接决定首屏加载速度,根据……

    2026年4月27日
    6100
  • Arkecx双11活动:11月11日16点VPS秒杀开启!1核1G内存25G硬盘1TB流量@1Gbps带宽,年付原价$120只要$11.11,限量30台,可选全球28个机房

    11月11日16点,Arkecx将开启VPS秒杀活动,1核1G内存25G硬盘1TB流量1Gbps带宽年付仅需$11.11,限量30台,覆盖全球28个机房,对于预算有限但追求稳定性的个人开发者、小型网站运营者以及刚起步的创业者而言,寻找高性价比的云服务器一直是痛点,Arkecx此次双11活动,以极具冲击力的价格切……

    2026年6月21日
    9300
  • 服务器api数据库访问技术有哪些,api数据库连接方法详解

    高效、安全且可扩展的数据交互架构,是现代互联网应用稳定运行的基石,服务器API数据库访问技术的核心逻辑在于构建一道坚固的“中间层”,将前端请求与后端数据存储进行逻辑解耦,通过连接池管理、参数化查询、ORM对象映射以及严格的身份验证机制,实现数据的高并发吞吐与零安全漏洞,这不仅是技术实现的路径,更是保障企业数据资……

    2026年4月10日
    8400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注