码迷,mamicode.com
首页 > 其他好文 > 详细

sersync实现实时同步

时间:2020-05-10 21:38:22      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:tool   define   err   执行文件   get   lan   部署   time   角色   

环境准备

主机名 外网IP 内网IP 角色 部署服务
web01 10.0.0.7 172.16.1.7 rsync的客户端,nfs的客户端,网站 rsync,nfs,apache,php
web02 10.0.0.8 172.16.1.8 rsync的客户端,nfs的客户端,网站 rsync,nfs,apache,php
nfs 10.0.0.31 172.16.1.31 rsync的客户端,nfs的服务端(共享存储) rsync,nfs,sersync
backup 10.0.0.41 172.16.1.41 rsync的服务端 rsync
# 0.安装sersync的依赖包
[root@nfs ~]# yum install -y rsync inotify-tools

# 1.下载sersync
[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz

# 2.解压sersync
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

# 3.移动并改名
[root@nfs ~]# mv GNU-Linux-x86 /usr/local/sersync
[root@nfs /usr/local/sersync]# ll
total 1772 
-rwxr-xr-x 1 root root    2250 May  9 20:41 confxml.xml  #可执行文件(二进制文件)
-rwxr-xr-x 1 root root 1810128 Oct 26  2011 sersync2

# 4.修改配置文件
[root@nfs ~]# vim /usr/local/sersync/confxml.xml


<!-- #修改后的配置文件 -->

<?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>   # 1.全部改成true
	<delete start="true"/>
	<createFolder start="true"/>
	<createFile start="false"/>
	<closeWrite start="true"/>
	<moveFrom start="true"/>
	<moveTo start="true"/>
	<attrib start="true"/>
	<modify start="true"/>
    </inotify>

    <sersync>
	<!-- #客户端需要监控的目录 -->
	<localpath watch="/date">  #2. 改成nfs服务端要推送的那个目录

	    <!-- rsync服务端的IP 和 name:模块 -->
	    <remote ip="10.0.0.41" name="backupmk"/>	#3. 备份服务器的外网IP和模块名
	    <!--<remote ip="192.168.8.39" name="tongbu"/>-->
	    <!--<remote ip="192.168.8.40" name="tongbu"/>-->
	</localpath>
	<rsync>
	    <!-- rsync命令执行的参数 -->
	    <commonParams params="-az"/>	# 4.改成 -az
            <!-- #rsync认证start="true" users="rsync指定的匿名用户" passwordfile="指定一个密码文件的位置权限必须600" -->	#5.下行的false改成true,匿名用户bck,密码文件
	    <auth start="true" users="bck" passwordfile="/etc/rsync.passwd"/>
	    <userDefinedPort start="false" port="874"/><!-- port=874 -->
	    <timeout start="false" time="100"/><!-- timeout=100 -->
	    <ssh start="false"/>
	</rsync>
	<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
	<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>

    <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="http://pic.xoyo.com/cms"/>
	    <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
	</localpath>
    </plugin>
</head>

# 5.创建客户端的密码文件
[root@nfs ~]# vim /etc/rsync.pas
或者 [root@nfs /usr/local/sersync]# echo 123 > /etc/rsync.passwd

# 6.授权密码文件权限为600
[root@nfs ~]# chmod 600 /etc/rsync.passwd

# 7.启动服务
[root@nfs ~]# /usr/local/sersync/sersync2 -rdo /usr/local/sersync/confxml.xml

[root@nfs /usr/local/sersync]# ps -ef|grep rsyn
root        572      1  0 May09 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root       2554      1  0 04:36 ?        00:00:00 sh rsync-inotify.sh

#这个在后台运行的sersync(inotify+rsync)的作用就是:
可以把nfs服务端的/date目录下的文件或目录 用rsync实时推送到备份服务器(backup)上
简单的修改配置文件后可以一键启动,高效 安全 方便

sersync实现实时同步

标签:tool   define   err   执行文件   get   lan   部署   time   角色   

原文地址:https://www.cnblogs.com/syy1757528181/p/12864896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!