千家信息网

rsync+sersync实现数据实时同步

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,一台装sersync、一台装rsync服务sersync服务器(数据源,源机器):192.168.0.63rsync客户端(备份端,目标机器):192.168.0.641. 为什么要用rsync+se
千家信息网最后更新 2026年11月03日rsync+sersync实现数据实时同步

一台装sersync、一台装rsync服务

sersync服务器(数据源,源机器):192.168.0.63

rsync客户端(备份端,目标机器):192.168.0.64

1. 为什么要用rsync+sersync架构?

(1) sersync是基于inotify开发的,类似于inotify-tools的工具。

(2) sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录。

2. rsync+inotify-tools与rsync+sersync架构的区别?

(1) rsync+inotify-tools

1) inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来。

2) rsync在同步的时候,并不知道具体是哪个文件或目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此效率很低。

(2) rsync+sersync

1) sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字。

2) rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

3. 同步过程:

(1) 在同步服务器上开启sersync服务,sersync负责监控配置路径中的文件系统事件变化。

(2) 调用rsync命令把更新的文件同步到目标服务器。

(3) 需要在主服务器配置sersync,在同步目标服务器配置rsync server(注意:是rsync服务)。

4. 同步过程和原理:

(1) 用户实时的往sersync服务器上写入更新文件数据。

(2) 此时需要在同步主服务器上配置sersync服务。

(3) 在另一台服务器开启rsync守护进程服务,以同步拉取来自sersync服务器上的数据。

(4) 在另一台服务器开启rsync守护进程服务,使sersync push文件过来。

通过rsync的守护进程服务后可以发现,实际上sersync就是监控本地的数据写入或更新事件,然后,在调用rsync客户端的命令,将写入或更新事件对应的文件通过rsync推送到目标服务器,如图 2-3 所示。

图2-3 同步过程示意图

2.3.1 下载sersync

1.在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件

wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz(有时下载失败,所有要本地留存一份)

2.上传到服务器 /opt目录下。

[root@xuegod63 ~]# cd /opt #切换工作目录到/opt目录下。

[root@xuegod63 opt]# tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz #解压。

[root@xuegod63 opt]# mv GNU-Linux-x86 sersync #解压后的文件重命名为sersync。

2.3.2 配置sersync

[root@xuegod63 opt]# cd sersync #切换工作目录至sersync目录下。

[root@xuegod63 sersync]# cp confxml.xml confxml.xml.bak #备份配置文件,便于二次修改

1. 更改优化sersync配置文件:

[root@xuegod63 sersync]# vim confxml.xml #修改配置文件中的24--28行,如下所示。

#本地同步数据目录。

#rsync模块名称

2. 修改31--34行,认证部分(rsync密码认证)。

3. 开启sersync守护进程同步数据。

[root@xuegod63 sersync]# /opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml

图 2-4 开启sersync守护进程

4. 测试

(1) 在63 /var/www/html/ 目录 增加、删除、或改目录文件。

(2) 看64 /web-back 目录的变化

[root@xuegod64 web-back]# watch ls -l

5. 设置sersync监控开机自动执行

[root@xuegod63 sersync]# vi /etc/rc.d/rc.local #编辑rc.local文件,在最后添加一行。

/opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml #设置开机自动运行脚本。

6. 添加脚本监控sersync是否正常运行

[root@xuegod63 ~]# vi /opt/check_sersync.sh #编辑脚本,添加以下代码。

#!/bin/sh

sersync="/opt /sersync/sersync2"

confxml="/opt /sersync/confxml.xml"

status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l)

if [ $status -eq 0 ];

then

$sersync -d -r -o $confxml &

else

exit 0;

fi

[root@xuegod63 ~]# chmod +x /opt /check_sersync.sh #添加脚本执行权限。

把这个脚本加到任务计划,定期执行检测。

有兴趣学习Linux云计算架构师的可以关注我!

我给大家推荐一些入门学习资料,都是些经典的学习资料!

CCNA 网络基础课程
http://edu.51cto.com/sd/3ee4c


Linux centos7 最新版的基础学习视频 请比对蘑菇丁的课程如果大纲一致就不要购买了!
http://edu.51cto.com/sd/d572a


python3 函数编程入门
http://edu.51cto.com/sd/dd128


WEB开发工程师 JavaScript全民你飞机大战游戏开发视频课程
http://edu.51cto.com/sd/c6223


如果你基础学习的比较好可以尝试了解一下Linux Docker虚拟化及Kubernetes容器集群管理
http://edu.51cto.com/sd/480b1

文件 目录 服务 同步 服务器 变化 数据 配置 脚本 进程 学习 目标 更新 监控 事件 基础 架构 课程 过程 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 互联网属科技 关于新基建和互联网科技 互联网金融 科技金融 互联网科技金融公司 中国 科技 互联网 电子科技大学互联网 深圳天众互联网科技公司 哈尔滨新华互联网科技 宁波青枫互联网科技有限公司 字节跳动和互联网科技 湖南诚度互联网科技有限公司 互联网软件和科技 山东子淼互联网科技有限公司 浙南科技城互联网大厦招聘 互联网相关科技技术 新氧科技和美国互联网有关系吗 宁波跨境商互联网科技有限公司 广州梦谷互联网科技有限公司领导 银川新华互联网科技学校招聘 广州大一互联网络科技有限公司 金诺互联网科技 互联网科技媒体 搜狐科技互联网 华夏恒生互联网科技013171 互联网科技资金流入 福仕德教育科技互联网 互联网时代高科技布局 盐城市攀科互联网科技有限公司 宁波允成互联网科技有限公司
0