当前版本的sersync依赖于rsync进行同步。如下图所示,在同步主服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在主服务器配置sersync,在同步目标服务器配置rsync。对于rsync配置,在google上可以找到很多资料,以下只是一些必要的配置和使用说明,仅供参考,请根据您的实际情况修改。


如图所示,需要在同步主服务器上配置sersync,在同步目标服务器配置rsync,并在目标服务器开启rsync守候进程,这样在主服务器产生的文 件,就会被sersync实时同步到多个目标服务器。在centos系统下默认已经安装了rsync,只需进行配置,并开启rsync守候进程即可。

配置同步目标服务器rsync


rsync --daemon

在主服务器上安装配置sresync

在目标服务器上配置rsync




1.创建目录和文件


[root@router bookfm]# mkdir /etc/rsyncd/


[root@router rsyncd]# touch rsyncd.conf         #创建rsync的配置文件


[root@router rsyncd]# touch rsyncd.secrets    


#创建rsync的密码文件,里面包含用户名和密码,用冒号分开


[root@router rsyncd]#chmod -R 600 .                


#只有root才能读取这些文件


[root@router rsyncd]# vim rsyncd.conf


uid = root                                


#系统中存在的用户,这个用户要能对备份的路径有写入权限

gid = root                                


#系统中存在的用户组,用户组要能对备份的路径有写入权限

max connections = 100          #最大连接数

use chroot = no              

log file = /var/rsync/rsync.log       #指定同步日志

pid file = /var/rsync/rsyncd.pid     #指定运行时PID文件

lock file = /var/rsync/rsyncd.lock  


[book]

path = /backup/bookfm                   #指定备份的路径

read only=no                                      #可写入  

ignore errors = yes                            #忽略错误

secrets file =/etc/rsyncd/rsyncd.secrets  


  #指定rsync自身的密码文件(非系统用户)

auth users = bookbackup           #指定这个共享名验证的用户名

hosts allow =  192.168.100.246/24           #只允许这个IP地址


hosts deny = *                 #而禁止其他所有IP





[root@router rsyncd]# vim rsyncd.secrets


bookbackup:123456





2.启动rsync守护进程


[root@router rsyncd]#rsync --daemon --config=/etc/rsyncd/rsyncd.conf


如果不指定端口,默认是873,如果有启用iptables,那么请放行873端口


rsync --daemon --port=9091 --config=/etc/rsyncd/rsyncd.conf   自定义端口时记得防火墙放行该端口




四、在源服务器上,开启sersync服务




[root@server10 book]# /usr/local/GNU-Linux-x86/sersync2 选项


-r 进行整体同步一次


-d 后台运行


-o 指定配置文件路径


-n 指定默认的线程池的线程总数,如果不指定,默认启动线程池数量是10(适用于四核服务器)




/usr/local/GNU-Linux-x86/sersync2 -r -d -o /usr/local/GNU-Linux-x86/confxml.xml


通常情况下使用这种方式,对本地到远程整体同步一次后,在后台运行实时同步。




/usr/local/GNU-Linux-x86/sersync2 -d -o /usr/local/GNU-Linux-x86/confxml.xml


在源服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。





/usr/local/GNU-Linux-x86/sersync2 -r -o /usr/local/GNU-Linux-x86/confxml.xml


在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步


如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效





/usr/local/GNU-Linux-x86/sersync2 -n 5 -r -o /usr/local/GNU-Linux-x86/confxml.xml


指定默认的线程池的线程总数,如果不指定,默认启动线程池数量是10(适用于四核服务器)


如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n调高线程总数。





基于上述情况,可以使用以下命令来启动sersync服务(如果同步时不过滤文件即filter start=false)


/usr/local/GNU-Linux-x86/sersync2 -n 5 -r -d -o /usr/local/GNU-Linux-x86/confxml.xml





但是根据自身的情况(因为只备份original.xxx文件),所以必须要启用文件过滤(即filter start=true),一旦启用了这个参数,那么-r参数就无效,而-r参数又是进行整体同步的参数,那就无法进行一次整体同步。


基于这种情况,可以在源上开启rsync服务,然后在目标上用rsync进行一次整体同步,然后停止源上面的rsync服务,开启sersync服务,进行实时同步


/usr/local/GNU-Linux-x86/sersync2 -d -o /usr/local/GNU-Linux-x86/confxml.xml


五、测试


在源服务器上指定目录下创建original.pdf文件,然后看看目标上备份的路径里面有没有该文件,然后再创建aaaa文件,看sersync是否同步该文件。


经测试,备份时可以做到实时同步,而且系统负载也较小。






在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件,这里用sersync2.5进行说明,新版本配置形式类似。

1.在主服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。

./sersync -d

过程如下:

[root@localhost GNU-Linux-x86]# ls

confxml.xml  sersync2

[root@localhost GNU-Linux-x86]# ./sersync2 -d

set the system paramexecute:echo 50000000 > /proc/sys/fs/inotify/max_user_watchesexecute:

echo 327679 > /proc/sys/fs/inotify/max_queued_eventsparse the command paramdaemon thread num:

10parse xml config filehost ip : localhost    

host port: 8008config xml parse successplease

set /etc/rsyncd.conf max connections=0 Manuallysersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)please according your cpu ,use -n param to adjust the cpu raterun the sersync:watch path is:

/opt/tongbu

表明,sersync已经开启,可以在本地监控路径下建立文件,查看远程是否同步成功。

2.在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步

./sersync -r

如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。
如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效。

3.查看启动参数帮助

./sersync --help

4.指定配置文件

./sersync -o XXXX.xml

对于sersync使用可执行文件目录下的默认配置文件confxml.xml,如果需要使用另一个配置文件,可以使用-o参数指定其它配置文件。

5.指定默认的线程池的线程总数

./sersync -n num

例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。

6.不进行同步,只运行插件

./sersync -m pluginName

例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。

7.多个参数可以配合使用

./sersync -n 8 -o abc.xml -r -d

表示,设置线程池工作线程为8个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,以守护进程方式在后台运行。

8.通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。

./sersync -d