一.简介
sersync是基于Inotify开发的,类似于Inotify-tools的工具;
sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;
rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高;
注:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。
二.具体操作
操作系统:centos6.6
源服务器(sersync):192.168.0.1 --> 目标服务器(rsync):192.168.0.2
目的:使用root用户,把源服务器上的/test1目录下的文件实时同步到目标服务器的/test2目录下
(一)目标服务器(rsync):192.168.0.2
1、安装rsync
yum -y install rsync
2、创建rsyncd.conf配置文件
vi /etc/rsyncd.conf
--------------------------
uid = root
gid = root
max connections = 10
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
[test] #模块自定义名称 ---这个需要与源服务器Sersync对应
path = /test2 #需要同步到这个目录
comment = Mirror to test
ignore errors = yes
use chroot = no #默认为true,修改为no,增加对目录文件软连接的备份
read only = no #设置rsync服务端文件为读写权限
hosts allow = 192.168.0.1 #允许访问源服务器IP
hosts deny = 0.0.0.0/32 #拒绝所有IP连接,先允许后拒绝
exclude =/data1 /data2 不同步的目录
注:这里只是列出一些配置项而已,其他在配置时按需选择。
------------------------------
3、启动服务
/usr/bin/rsync --daemon /etc/rsyncd.conf
(二)源服务器(sersync):192.168.0.1
1、安装rsync
yum -y install rsync
2、同步数据
rsync -avzP /test1/ root@192.168.0.2::test/ 测试同步文件
--/test1/ 同步目录
--192.168.0.2 目的服务器,安装并配置完毕rsync
--test 模块自定义名称,即目的服务器的rsync配置文件中配置的
3、安装sersync工具,实时触发rsync进行同步
#cd /usr/local/src
#wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz
#tar zxvf sersync2.5_32bit_binary_stable_final.tar.gz
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
#mv /usr/local/src/GNU-Linux-x86/ /usr/local/sersync/
#vi /usr/local/sersync/confxml.xml
需要修改如下几个地方:
<localpath watch="/data/test">
<!—-设置监控的目录-->
<remote ip="192.168.0.2" name="test"/>
<!—设置从服务器的IP-->
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<!—-设置监控的目录-->
<remote ip="192.168.0.2" name="test"/>
<!—设置从服务器的IP-->
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="root" passwordfile="/etc/rsyncd.secret"/>
<!—-设置同步的用户名和密码文件-->
<userDefinedPort start="true" port="873"/><!-- port=874 -->
<!—-设置rsync的端口,要和从那边开启的端口一致-->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<commonParams params="-artuz"/>
<auth start="true" users="root" passwordfile="/etc/rsyncd.secret"/>
<!—-设置同步的用户名和密码文件-->
<userDefinedPort start="true" port="873"/><!-- port=874 -->
<!—-设置rsync的端口,要和从那边开启的端口一致-->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
注:如果目的服务器的rsync有配置账号密码时,这里需要配置/etc/rsyncd.secret
4、启动sersync
/usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml