其他分享
首页 > 其他分享> > sersync下载安装及配置(有演示示例)

sersync下载安装及配置(有演示示例)

作者:互联网

sersync下载安装及配置(有演示示例)

2017年4月30日  暂无评论 6,514次浏览  

sersync是基于inotify+rsync的大量文件的多服务器自动同步程序

使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高。

sersync已不在更新,感谢sersync作者周洋

谷歌项目地址:https://code.google.com/archive/p/sersync/

64位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz

32位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz

上不去google的可以直接wget我本地的包,这里只提供64位版本的:http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz

压缩包里面有两个文件confxml.xml sersync2

sersync2 这个是sersync主程序

confxml.xml 这个是sersync配置文件

配置文件部分常用参数解释:

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 <?xml version="1.0" encoding="ISO-8859-1"?> <head version="2.5"> <host hostip="localhost" port="8008"></host> #保留字段,默认即可 <debug start="false"/> #是否开启调试模式,默认false即可 <fileSystem xfs="true"/> #是否开启支持xfs文件系统,Centos7默认都是xfs的了,所以建议true开启 <filter start="false"> #是否开启过滤模式,根据需求开启,例:过滤以.php结尾的文件(.*)\.php <exclude expression="(.*)\.svn"></exclude> #过滤以.svn结尾的文件 <exclude expression="(.*)\.gz"></exclude> #过滤以.gz结尾的文件 <exclude expression="^info/*"></exclude> #过滤监控目录下的info路径 <exclude expression="^static/*"></exclude> #过滤监控目录下的static路径 <exclude expression="wwwroot/blogwhsir/*"></exclude> #过滤wwwroot/blogwhsir/目录下所有文件 </filter> <inotify> #inotify监控事件 <delete start="true"/> #如果不开启此项,在删除监控目录下的文件时,目标服务器的文件则不会同时删除,根据需求开启 <createFolder start="true"/> #不开启不能监控子目录,建议true <createFile start="false"/> #关闭提高通讯性能,默认就好 <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="false"/> <modify start="false"/> </inotify>   <sersync> <localpath watch="/opt/tongbu"> #指定要监控的本地目录 <remote ip="127.0.0.1" name="tongbu1"/> #指定要同步的目标服务器的IP地址,及目标服务器rsync的[模块] <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> #配置rsync <commonParams params="-artuz"/> #rsync的参数 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> #是否开启rsync的认证模式,需要配置users及passwordfile,根据情况开启(如果开启,注意密码文件权限一定要是600) <userDefinedPort start="false" port="874"/><!-- port=874 --> #远程目标服务器的端口不是默认端口时使用 <timeout start="false" time="100"/><!-- timeout=100 --> #是否开启rsync的超时时间 <ssh start="false"/> </rsync> <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> #目标服务器传输失败时会重新传输,再次失败会写入rsync_fail_log中,每隔一段时间(timeToExecute)执行脚本再次传输 <crontab start="false" schedule="600"><!--600mins--> #对监控目录与目标服务器每隔一段时间进行一次整体同步,默认600分钟,根据个人情况是否开启 <crontabfilter start="false"> #如果之前开启了文件过滤,这里也要设置过滤 <exclude expression="*.php"></exclude> <exclude expression="info/*"></exclude> </crontabfilter> </crontab> <plugin start="false" name="command"/> </sersync>   <plugin name="command"> #下面就是插件的设置(不做过多说明) <param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix--> <filter start="false"> <include expression="(.*)\.php"/> <include expression="(.*)\.sh"/> </filter> </plugin>   <plugin name="socket"> <localpath watch="/opt/tongbu"> <deshost ip="192.168.138.20" port="8009"/> </localpath> </plugin> <plugin name="refreshCDN"> <localpath watch="/data0/htdocs/cms.xoyo.com/site/"> <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/> <sendurl base="https://blog.whsir.com"/> <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/> </localpath> </plugin> </head>

一个简单的演示示例:

确认当前系统关闭selinux及防火墙,或将873端口加入iptables白名单

我这里有两台centos6.7的主机,IP分别是192.168.0.70和192.168.0.31

我在192.168.0.70安装sersync,主动推送数据到192.168.0.31上

192.168.0.31上配置

安装创建rsync配置文件

 
1 yum -y install rsync

 

 
1 vi /etc/rsyncd.conf

 

 
1 2 3 4 5 6 7 8 9 10 11 uid = root gid = root use chroot = no hosts allow=* max connections = 3 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock [tongbu] path = /whsir comment = whsir read only = false

以守护进程方式启动rsync

 
1 /usr/bin/rsync --daemon

192.168.0.70上配置

 
1 2 3 4 5 6 cd /usr/local/ wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz tar xzf sersync2.5.4_64bit_binary_stable_final.tar.gz rm -rf sersync2.5.4_64bit_binary_stable_final.tar.gz mv GNU-Linux-x86/ sersync cd sersync

我这里将sersync放在了/usr/local/sersync/目录下

我这里修改了下confxml.xml文件

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 <?xml version="1.0" encoding="ISO-8859-1"?> <head version="2.5"> <host hostip="localhost" port="8008"></host> <debug start="false"/> <fileSystem xfs="false"/> <filter start="false"> <exclude expression="(.*)\.svn"></exclude> <exclude expression="(.*)\.gz"></exclude> <exclude expression="^info/*"></exclude> <exclude expression="^static/*"></exclude> </filter> <inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="false"/> <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="false"/> <modify start="false"/> </inotify>   <sersync> <span style="color: #800000;"><localpath watch="/opt/tongbu"></span> <span style="color: #800000;"><remote ip="192.168.0.31" name="tongbu"/></span> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> <span style="color: #800000;"><commonParams params="-azvP"/></span> <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync> <span style="color: #800000;"><failLog path="/tmp/rsync_fail_log.sh" timeToExecute="15"/><!--default every 60mins execute once--></span> <crontab start="false" schedule="600"><!--600mins--> <crontabfilter start="false"> <exclude expression="*.php"></exclude> <exclude expression="info/*"></exclude> </crontabfilter> </crontab> <plugin start="false" name="command"/> </sersync> </head>

启动sersync

 
1 chmod +x sersync2

 

 
1 /usr/local/sersync/sersync2 -n 10 -d -o /usr/local/sersync/confxml.xml

-n 启用线程数量
-d daemon方式启动
-o 指定配置文件

sersync整体同步一次
在sersync目录下运行./sersync2 -r

每当192.168.0.70 /opt/tongbu目录下上传文件会主动推送到192.168.0.31 /whsir目录下

如果推送失败则在15分钟后再次推送,我这里改的15分钟,如果连续两次失败,则不会在推送了,建议在192.168.0.31上做个rsync拉,确保文件一致

 

标签:文件,rsync,sersync,示例,开启,192.168,下载安装,目录
来源: https://www.cnblogs.com/mouseleo/p/12587126.html