原文地址:sersync2.5+rsync实现数据同步
作者:小花你别跑
环境
源服务器IP:192.168.1.51
目标服务器IP:192.168.1.52
目标服务器
#tar -zxvf rsync-3.0.9.tar.gz
#cd rsync-3.0.9
#./configure --prefix=/usr/local/rsync
#make && make install
#cd /usr/local/rsync/
#mkdir etc
#vim /usr/local/rsync/etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=200
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[http]
uid=root
gid=root
path=/usr/local/nginx/html/sync
comment = wwwroot
read only = no
write only = no
list = yes
ignore errors = yes
hosts allow = 192.168.1.51/24
hosts deny = *
#/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/etc/rsyncd.conf
#iptables -A INPUT -p tcp --dport 873 -j ACCEPT
源服务器
#tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
#mv GNU-Linux-x86/ /usr/local/sersync2.5
#cd /usr/local/sersync2.5/
# vim /usr/local/sersync2.5/confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="192.168.1.51" 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>
<localpath watch="/usr/local/nginx/html/sync">
<remote ip="192.168.1.52" name="http"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
<failLog path="/var/log/sersync2.log" timeToExecute="60"/>
配置完成,先做一次整体同步
#/usr/local/sersync2.5/sersync2 -r -o /usr/local/sersync2.5/confxml.xml
守护进程模式启动sersync2
#/usr/local/sersync2.5/sersync2 -d -o /usr/local/sersync2.5/confxml.xml
sersync2配置文件详解
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="9090"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="true">
<exclude expression="^((?!original.).*)$"></exclude>
#只备份源里面文件名是original开头的,后缀名不限定的文件,?!original 代表反向选择
<!-- <exclude expression="abc"></exclude>
<exclude expression="image"></exclude>
<exclude expression="txt"></exclude>
<exclude expression="xml"></exclude>
<exclude expression="*"></exclude>
-->
</filter>
<inotify>
<delete start="false"/>
#不监控文件或目录的删除
<createFolder start="true"/>
#监控目录的创建
<modify start="true"/>
#监控文件的修改
<createFile start="true"/>
#监控创建新文件
<closeWrite start="false"/>
<moveFrom start="false"/>
<moveTo start="false"/>
<attrib start="false"/>
</inotify>
<sersync>
<localpath watch="/data/bookfm/doc/book">
#设置监控的目录
<remote ip="192.168.100.250" name="book"/>
#指定目标主机的IP地址和模块名(和samba的类似,不是目录的名称)
#有几台目标主机,配置这样几条,同时也要在目标上启用rsync守护进程
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-au"/>
#指定rsync 运行时的参数,可根据自身需要更改
<auth start="true" users="bookbackup" passwordfile="/usr/local/GNU-Linux-x86/rsyncd.secrets"/>
#启用验证,指定用户名和密码文件(只用写一个密码即可)
#用户名是目标服务器上rsync配置文件中指定的用户名,密码文件中的密码也目标服务器上rsync指定的密码文件指定的密码
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/var/rsync/rsync_error.log" 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>
配置文件一般根据自己需要修改
源服务器IP:192.168.1.51
目标服务器IP:192.168.1.52
目标服务器
#tar -zxvf rsync-3.0.9.tar.gz
#cd rsync-3.0.9
#./configure --prefix=/usr/local/rsync
#make && make install
#cd /usr/local/rsync/
#mkdir etc
#vim /usr/local/rsync/etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=no
max connections=200
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[http]
uid=root
gid=root
path=/usr/local/nginx/html/sync
comment = wwwroot
read only = no
write only = no
list = yes
ignore errors = yes
hosts allow = 192.168.1.51/24
hosts deny = *
#/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/etc/rsyncd.conf
#iptables -A INPUT -p tcp --dport 873 -j ACCEPT
源服务器
#tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
#mv GNU-Linux-x86/ /usr/local/sersync2.5
#cd /usr/local/sersync2.5/
# vim /usr/local/sersync2.5/confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
配置完成,先做一次整体同步
#/usr/local/sersync2.5/sersync2 -r -o /usr/local/sersync2.5/confxml.xml
守护进程模式启动sersync2
#/usr/local/sersync2.5/sersync2 -d -o /usr/local/sersync2.5/confxml.xml
sersync2配置文件详解
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
#指定目标主机的IP地址和模块名(和samba的类似,不是目录的名称)
#有几台目标主机,配置这样几条,同时也要在目标上启用rsync守护进程
</head>
配置文件一般根据自己需要修改