rsync + sersync实现数据实时同步

,

一台装sersync,一台装rsync服务

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

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

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

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

(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服务器(注意:是rsync服务)。

4。同步过程和原理:

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

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

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

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

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

 rsync + sersync实现数据实时同步

图2 - 3同步过程示意图

<编辑> 2.3.1下载sersync

1。在google代码下载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选择]# tar xvf sersync2.5.4_64bit_binary_stable_final.tar。广州#解压。

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

<编辑> 2.3.2配置sersync

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

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

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

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

& lt; sersync>

& lt; localpath看=?var/www/html"比;#本地同步数据目录。

& lt;远程ip=?92.168.0.64"name=皐wwroot"/比;# rsync模块名称

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

& lt; rsync>

& lt; commonParams params=?artuz"/祝辞

& lt; auth=开始“true"用户=皉syncuser"passwordfile=?etc/rsync.passwd"/祝辞

& lt; userDefinedPort开始=癴alse"端口=?74“/祝辞& lt; !——端口=874——在

& lt;超时开始=癴alse"时间=?00“/祝辞& lt; !——超时=100——在

& lt; ssh开始=癴alse"/祝辞

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

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

 rsync + sersync实现数据实时同步

图2 - 4开启sersync守护进程

4。测试

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

(2)看64/互联网后腿目录的变化

[root@xuegod64互联网后腿)#看ls - l

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

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

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

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

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

rsync + sersync实现数据实时同步