sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。

当前版本的sersync依赖于rsync进行同步。在同步主服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在主服务器配置sersync,在同步目标服务器配置rsync。

需要在同步主服务器上配置sersync,在同步目标服务器配置rsync,并在目标服务器开启rsync守候进程,这样在主服务器产生的文件,就会被sersync实时同步到多个目标服务器。

rsync服务端
yum install  rsync  -y
vim /etc/rsyncd.conf
uid=root
gid=root
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[tongbu]
path=/opt/rsync      将同步过来的文件放入path指定的目录/opt/rsync
comment = test files
ignore errors = yes
read only = no
hosts allow = 192.168.0.84/24
hosts deny = *

mkdir /opt/rsync
rsync --daemon    rsync独立在后端运行
netstat -antlp | grep rsync

rsync客户端(需要同步的服务器)
下载:sersync2.5_64bit_binary_stable_final.tar.gz

下载地址:https://code.google.com/p/sersync/downloads/listtar

tar zxf sersync2.5_64bit_binary_stable_final.tar.gz
cd GNU-Linux-x86/
ls
confxml.xml  sersync2
vim confxml.xml
<sersync>
       <localpath watch="/opt/rsync">
           <remote ip="192.168.0.7" name="tongbu"/>
           <!--<remote ip="192.168.8.39" name="tongbu"/>-->
           <!--<remote ip="192.168.8.40" name="tongbu"/>-->
       </localpath>
将主服务器上本地的/opt/rsync路径下的文件,同步到远程服务器192.168.0.7上面的/opt/rsync目录下
需要修改remote ip  和 path watch  及name

./sersync2 -r -d     -r表示对目录整体同步   -d表示后台运行

./sersync2  -o  XXX.xml     -o参数指定其他配置文件
./sersync2  -o  abc.xml
./sersync2  -n num    指定线程数,默认为10  
./sersync2  -n  20

也可以只用rsync 备份:结合ssh,还可以用到crontab,
下面为手动备份:
rsync -ave ssh 222.24.25.248:/etc/   /opt/tongbu  将远程主机/etc/目录下的所有文件及目录备份到本地的/opt/tongbu/目录下。
如果不加参数-ave,则只会备份/etc目录下的文件。

下面为自动备份:
先做ssh无密码安全登录,再将rsync命令写到crontab计划任务中:
crontab  -e
0  17  *  *   1-5   rsync  -ave  ssh  222.24.25.248:/etc/    /opt/tongbu/
周一到周五的每天下午5点执行ssh远程自动登录将222.24.25.248的/etc目录的所有东西同步到本地

如果想将本地的多个目录同步到目标服务器上:
在目标服务器上:
vim  /etc/rsyncd.conf
uid=root
gid=root
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[tongbu]
path=/opt/tongbu
comment = test files
ignore errors = yes
read only = no
hosts allow = 222.24.25.248/24
hosts deny = *
[smart]
path=/smart
comment = test files
ignore errors = yes
read only = no
hosts allow = 222.24.25.248/24
hosts deny = *
然后  mkdir /smart     mkdir  /opt/tongbu
rsync --daemon

在本地:
cd  /root/GNU-Linux-x86
cp confxml.xml   confxml2.xml
vim confxml.xml
<localpath watch="/smart">
           <remote ip="222.24.25.44" name="smart"/>
vim confxml.xml
<localpath watch="/etc">
           <remote ip="222.24.25.44" name="tongbu"/>


然后:
./sersync -o confxml.xml -r -d
./sersync -o confxml2.xml -r -d