拓扑图如下:

 

用sersync进行实时同步数据_第1张图片 

同步目标服务器

Vim /etc/rsyncd.conf

 

   
   
   
   
  1. uid=root  
  2. gid=root  
  3. max connections=36000  
  4. use chroot=no 
  5. log file=/var/log/rsyncd.log  
  6. pid file=/var/run/rsyncd.pid  
  7. lock file=/var/run/rsyncd.lock  
  8.    
  9. [web]  
  10. path=/data0/web  
  11. comment  =  McShell web  
  12. ignore errors = yes  
  13. read only = no 
  14. hosts allow =  10.1.0.0/24  
  15. hosts deny = * 

编辑完之后执行rsync –daemon 开启守护进程

剩下的服务器都一样配置。

 

同步服务器的confxml.xml如下

 

   
   
   
   
  1. xml version="1.0" encoding="ISO-8859-1"?> 
  2. <head version="2.2"> 
  3.     <host hostip="10.1.0.2" port="8008">host> 
  4.     <filter start="false"> 
  5.         <exclude expression="(.*)\.gz">exclude> 
  6.         <exclude expression="^info/*">exclude> 
  7.     filter> 
  8.     <sersync> 
  9.         <localpath watch="/data0/web " debug="false"> 
  10.             <remote ip="10.1.0.4" name="web"/> 
  11.             <remote ip="10.1.0.5" name="web"/> 
  12.             <remote ip="10.1.0.6" name="web"/> 
  13.    
  14.              
  15.         localpath> 
  16.    
  17.         <rsyncauth start="flase" users="www" passwordfile="/etc/rsync.pas"/> 
  18.         <crontab start="false" schedule="600"> 
  19.             <crontabfilter start="false"> 
  20.                 <exclude expression="*.php">exclude> 
  21.                 <exclude expression="info/*">exclude> 
  22.             crontabfilter> 
  23.         crontab> 
  24. sersync> 
  25. head> 

然后执行:

./sersyncphp –d  在主服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。.

./sersyncphp –r   在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步

扩展:

如果进行多个目录同步,复制出多个confxml.xml即可,名称根据自己来定义,不可相同。

执行

./sersync -o XXXX.xml