sersync主要用于服务器同步,web镜像等功能。sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。sersync配置起来很简单。另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态,同步及时快速。
安装环境
sersync服务端
112.124.12.234
客户端
112.124.1.2
42.120.1.2
42.120.1.3
操作系统 centos 6.3 64位
1.服务端安装
yum -y install rsync
vim /etc/rsyncd.conf 可能网上说rsync.conf也可以,但是我这边是不行
uid=root
gid=root
max connections=3600
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
rsync --daemon
echo "/usr/bin/rsyc --daemo" > /etc/rc.local
下载地址http://code.google.com/p/sersync/downloads/list
tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local
cd /usr/local/GNU-Linux-x86/
vim confxml.xml
<localpath watch="/data/web/movie">
<remote ip="112.124.1.2" name="v.languang.com"/>
<remote ip="42.120.1.2" name="v.languang.com"/>
<remote ip="42.120.1.3" name="v.languang.com"/>
</localpath>
对于大多数应用,可以尝试把createFile(监控文件事件选项)设置为false来提高性能,减少 rsync通讯。因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝结束时的事 件close_write,同样可以实现文件完整同步。
注意:强将createFolder保持为true,如果将createFolder设为false,则不会对产生的目录进行监控,该目录下的子文件与子目录也不会被监控。所以除非特殊需要,请开启。
默认情况下对创建文件(目录)事件与删除文件(目录)事件都进行监控,如果项目中不需要删除远程目标服务器的文件(目录),则可以将delete 参数设置为false,则不对删除事件进行监控。
2.客户端配置
以其中一台为例子(后面几台都是一样)
yum -y install rsync
vim /etc/rsyncd.conf
uid=root
gid=root
max connections=3600
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[v.languang.com]
path=/data/web/movie
comment = www web files
ignore errors = yes
read only = no
hosts allow = 112.124.12.234
hosts deny = *
#list=false
#uid=root
#gid=root
#auth users=backup
#secrets file=/etc/server.pass
rsync --daemon
echo "/usr/bin/rsyc --daemo" > /etc/rc.local
3.sersync一些操作
1.在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步
如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。
如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效。
2.查看启动参数帮助
3.指定配置文件
对于sersync使用可执行文件目录下的默认配置文件confxml.xml,如果需要使用另一个配置文件,可以使用-o参数指定其它配置文件。
4.指定默认的线程池的线程总数
例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。
5.不进行同步,只运行插件
例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。
6.多个参数可以配合使用
表示,设置线程池工作线程为8个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,以守护进程方式在后台运行。
7.通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。