sersync 配置文档

更详细文档请直接参考周洋博客

使用sersync 目的,实时备份 ubuntu 系统中重要数据,到rsync服务器上,以前是使用shell脚本+crontab 每天同步一次数据到rsync服务器上,有了sersync 可以实时同步就更爽了!

 

更改配置文档

# cat sersync/confxml.xml

  
  
  
  
  1. <?xml version="1.0" encoding="ISO-8859-1"?> 
  2. <head version="2.5"> 
  3.     <host hostip="localhost" port="8008"></host> 
  4.     <debug start="false"/> 
  5.     <fileSystem xfs="false"/> 
  6.     <filter start="true"> 
  7.         <exclude expression="^qq_file/*"></exclude> 
  8.         <exclude expression="^\$RECYCLE.BIN/*"></exclude> 
  9.         <exclude expression="^mail/*"></exclude> 
  10.     </filter> 
  11.     <inotify> 
  12.         <delete start="true"/> 
  13.         <createFolder start="true"/> 
  14.         <createFile start="false"/> 
  15.         <closeWrite start="true"/> 
  16.         <moveFrom start="true"/> 
  17.         <moveTo start="true"/> 
  18.         <attrib start="false"/> 
  19.         <modify start="false"/> 
  20.     </inotify> 
  21.  
  22.     <sersync> 
  23.         <localpath watch="/mnt/isolinux"> 
  24.             <remote ip="192.168.5.82" name="ub"/> 
  25.         </localpath> 
  26.         <rsync> 
  27.             <!--<commonParams params="-artuz"/>--> 
  28.             <commonParams params="-avz"/> 
  29.             <auth start="true" users="dong" passwordfile="/home/administrator/pw"/> 
  30.             <userDefinedPort start="false" port="874"/><!-- port=874 --> 
  31.             <timeout start="false" time="100"/><!-- timeout=100 --> 
  32.             <ssh start="false"/> 
  33.         </rsync> 
  34.         <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> 
  35.         <crontab start="false" schedule="600"><!--600mins--> 
  36.             <crontabfilter start="false"> 
  37.                 <exclude expression="*.php"></exclude> 
  38.                 <exclude expression="info/*"></exclude> 
  39.             </crontabfilter> 
  40.         </crontab> 
  41.         <plugin start="false" name="command"/> 
  42.     </sersync> 
  43.  
  44.     <plugin name="command"> 
  45.         <param prefix="/bin/sh" suffix="" ignoreError="true"/>  <!--prefix /opt/tongbu/mmm.sh suffix--> 
  46.         <filter start="false"> 
  47.             <include expression="(.*)\.php"/> 
  48.             <include expression="(.*)\.sh"/> 
  49.         </filter> 
  50.     </plugin> 
  51.  
  52.     <plugin name="socket"> 
  53.         <localpath watch="/opt/tongbu"> 
  54.             <deshost ip="192.168.138.20" port="8009"/> 
  55.         </localpath> 
  56.     </plugin> 
  57.     <plugin name="refreshCDN"> 
  58.         <localpath watch="/data0/htdocs/cms.xoyo.com/site/"> 
  59.             <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/> 
  60.             <sendurl base="http://pic.xoyo.com/cms"/> 
  61.             <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/> 
  62.         </localpath> 
  63.     </plugin> 
  64. </head> 

 

解释说明

<host hostip="localhost" port="8008"></host>

hostip与port是针对插件的保留字段,对于同步功能没有任何作用,保留默认即可


filter文件过滤功能

对于sersync监控的文件,会默认过滤系统的临时文件(以“.”开头,以“~”结尾),除了这些文件外,可以自定义其他需要过滤的文件。

<filter start="true">
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
</filter>

将start设置为 true,在exclude标签中,填写正则表达式,默认给出两个例子分别是过滤以”.gz”结尾的文件与过滤监控目录下的info路径(监控路径 /info /*),可以根据需要添加,但开启的时候,自己测试一下,正则表达式如果出现错误,控制台会有提示。相比较使用rsync 的exclude功能,被过滤的路径,不会加入监控,大大减少rsync的通讯量。

inotify监控参数设定(优化)
对于inotify监控参数可以进行设置,根据您项目的特点优化srsync。

<inotify>
<delete start="true"/>
<createFolder  start="true"/>
<createFile start="true"/>
</inotify>

对于大多数应用,可以尝试把createFile(监控文件事件选项)设置为false来提高性能,减少 rsync通讯。因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝结束时的事 件close_write,同样可以实现文件完整同步。
注意:强将createFolder保持为true,如果将createFolder设为false,则不会对产生的目录进行监控,该目录下的子文件与子目录也不会被监控。所以除非特殊需要,请开启。默认情况下对创建文件(目录)事件与删除文件(目录)事件都进行监控,如果项目中不需要删除远程目标服务器的文件(目录),则可以将delete 参数设置为false,则不对删除事件进行监控。


Debug开启

<debug start="false"/>

设置为true,开启debug模式,会在sersync正在运行的控制台,打印inotify事件与rsync同步命令。

 
XFS文件系统

<fileSystem xfs="false"/>

对于xfs文件系统的用户,需要将这个选项开启,才能使sersync正常工作.


文件监控与远程同步设置

<localpath watch="/opt/tongbu">
<remote ip="192.168.0.104" name="tongbu1"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>


Rsync参数配置

<rsync>
<commonParams params="-artuz"/>
<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>

 

commonParams可以用户自定义rsync参数,默认是-artuz

auth start=”false” 设置为true的时候,使用rsync的认证模式传送,需要配置user与passwrodfile(–password-file=/etc /rsync.pas),来使用。userDefinedPort  当远程同步目标服务器的rsync端口不是默认端口的时候使用(–port=874)。timeout设置rsync的timeout时间 (–timeout=100)。ssh 使用rsync -e ssh的方式进行传输。



失败日志脚步配置

<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/>

对于失败的传输,会进行重新传送,再次失败就会写入rsync_fail_log,然后每隔一段时间(timeToExecute进行设置)执行该脚本再次重新传送,然后清空该脚本。可以通过path来设置日志路径。

 

Crontab定期整体同步功能

<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.gz"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>

crontab可以对监控路径与远程目标主机每隔一段时间进行一次整体同步,可能由于一些原因两次失败重传都失败了,这个时候如果开启了crontab功 能,还可以进一步保证各个服务器文件一致,如果文件量比较大,crontab的时间间隔要设的大一些,否则可能增加通讯开销。schedule这个参数是设置crontab的时间间隔,默认是600分钟
如果开启了filter文件过滤功能,那么crontab整体同步也需要设置过滤,否则虽然实时同步的时候文件被过滤了,但crontab整体同步的时候 如果不单独设置crontabfilter,还会将需过滤的文件同步到远程,crontab的过滤正则与filter过滤的不同,也给出了两个实例分别对 应与过滤文件与目录。总之如果同时开启了filter与crontab,则要开启crontab的crontabfilter,并按示例设置使其与 filter的过滤一一对应。


插件设置

<plugin start="false" name="command"/>

当设置为true的时候,将文件同步到远程服务器后会调用name参数指定的插件。详见请看插件设置。

你可能感兴趣的:(linux,同步,rsync,休闲,sersync)