1、 先安装好rsyncd服务端,并配置可以从客户端将数据同步到服务端,也可以将服务端的数据拉取到本地 Rsync服务端配置如下: 1.1、创建rsyncd.conf配置文件 Vim /etc/rsyncd.conf 配置信息如下 #Rsync server ##rsyncd.conf start## uid = rsync 这个用户就是对后面path有读写权限 gid = rsync 对后面path有读写权限 use chroot = no 无限制 max connections = 2000 最大连接数 timeout = 600 超时时间 pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log ignore errors
read only = false 设置rsync服务端文件的读写权限 list = false 不显示rsync服务端资源列表 hosts allow = 192.168.239.0/24 允许的客户端连接的IP地址 hosts deny = 0.0.0.0/32 拒接客户端连接的IP地址 auth users = rsync_backup 建立的虚拟用户 secrets file = /etc/rsync.password 建立虚拟用户的密码文件 ##################################### [www] path = /data/www/ [web] path= /data/web/ 1.2、创建rsync用户用于管理path路径 Mkdir -p /data/www/ Touch /data/www/ddd.txt Groupadd rsync Useradd -s /sbin/nologin -g rsync -M rsync Chown -R rsync.rsync /data/www 1.3、创建虚拟用户和密码并授权600 Echo “rsync_backup:oldboy”>> /etc/rsync.password Chmod 600 /etc/rsync.password 1.4、启动rsync服务 Rsync --daemon 2、 配置好rsync客户端,并测试推送数据和拉取数据 2.1、 创建虚拟用户密码文件 Touch /etc/rsync.password Echo “oldboy” >>/etc/rsync.password Chmod 600 /etc/rsync.password 2.2、 创建测试文件 Mkdir -p /data/web Touch /data/web/abc.txt 2.3、 推送数据到rsync服务端,和将服务端ddd.txt文件拉取到本地 Rsync -avzR /data/web/ rsync_backup@192.168.239.133::web –password-file=/etc/rsync.password Rsync -avzR rsync_backup@192.168.239.133::web /data/web –password-file=/etc/rsync.password 3、 下载sersync并配置 Cd /usr/local/src/ Wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz 压缩包里面有两个文件confxml.xml sersync2 sersync2 这个是sersync主程序 confxml.xml 这个是sersync配置文件 tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz mv GNU-Linux-x86/ /usr/local/sersync cd /usr/local/sersync mkdir bin conf logs mv confxml.xml ./conf mv sersync2 ./bin

4、 配置confxml.xml文件(×××是需要修改的部份) <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>
<localpath watch="/data/web">
          /data/web就是rsync客户端的目录
    <remote ip="192.168.239.133" name="web"/> 
  192.168.239.133就是rsync服务器的IP地址
  Name=web 这个web就是在rsyncd.conf配置文件里面定义的模块
    <!--<remote ip="192.168.8.39" name="tongbu"/>-->   这个注释
    <!--<remote ip="192.168.8.40" name="tongbu"/>-->   这个注释
</localpath>
<rsync>
    <commonParams params="-artuz"/> 
      -artuz就是rsync 后面对应的参数选项,例如rsync -avzR
    <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>
            Users=虚拟用户 passwordfile=虚拟用户的密码文件所在的位置
    <userDefinedPort start="false" port="874"/><!-- port=874 -->
    <timeout start="false" time="100"/><!-- timeout=100 -->
    <ssh start="false"/>
</rsync>

#目标服务器传输失败时会重新传输,再次失败会写入rsync_fail_log中,每隔一段时间(timeToExecute)执行脚本再次传输 <failLog path="/usr/local/sersync/logs/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、 启动sersync 启动方法 /usr/local/sersync/bin/sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml -d daemon方式启动 -n 启用线程数量 -o 指定配置文件 -r 递归同步目录数据