zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux 配置 Sersync

2023-09-11 14:18:16 时间

[root@SERSYNC sersync]# cp conf/confxml.xml conf/confxml.xml.bak.$(date +%F)

 

 

[root@SERSYNC sersync]# ls

 

 

bin  conf  logs

 

 

[root@SERSYNC sersync]# ls conf/

 

 

confxml.xml  confxml.xml.bak.2014-06-04

 

 

初始化的配置文件内容如下:

 

 

[root@SERSYNC sersync]# cat conf/confxml.xml -n

 

 

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="false">

 

7<exclude expression="(.*)\.svn"></exclude>

 

8<exclude expression="(.*)\.gz"></exclude>

 

9<exclude expression="^info/*"></exclude>

 

 

11    </filter>

 

12    <inotify>

 

13<delete start="true"/>

 

14<createFolder start="true"/>

 

15<createFile start="false"/>

 

16<closeWrite start="true"/>

 

 

17<moveFrom start="true"/>

 

 

18<moveTo start="true"/>

 

 

19<attrib start="false"/>

 

 

20<modify start="false"/>

 

 

21    </inotify>

 

 

23    <sersync>

 

 

24<localpath watch="/opt/tongbu">

 

 

25    <remote ip="127.0.0.1" name="tongbu1"/>

 

 

26    <!--<remote ip="192.168.8.39" name="tongbu"/>-->

 

 

27    <!--<remote ip="192.168.8.40" name="tongbu"/>-->

 

 

28</localpath>

 

 

29<rsync>

 

 

30    <commonParams params="-artuz"/>

 

 

31    <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>

 

32    <userDefinedPort start="false" port="874"/><!-- port=874 -->

 

33    <timeout start="false" time="100"/><!-- timeout=100 -->

 

34    <ssh start="false"/>

 

35</rsync>

 

36<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mi ns execute once-->

 

 

38    <crontabfilter start="false">

 

39<exclude expression="*.php"></exclude>

 

40<exclude expression="info/*"></exclude>

 

41    </crontabfilter>

 

42</crontab>

 

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

 

 

44    </sersync>

 

 

46    <plugin name="command">

 

 

47<param prefix="/bin/sh" suffix="" ignoreError="true"/><!--prefix /opt/tongbu/mm

 

 

m.sh suffix-->

 

 

48<filter start="false">

 

 

49    <include expression="(.*)\.php"/>

 

 

50    <include expression="(.*)\.sh"/>

 

 

51</filter>

 

 

52    </plugin>

 

 

54    <plugin name="socket">

 

 

55<localpath watch="/opt/tongbu">

 

 

56    <deshost ip="192.168.138.20" port="8009"/>

 

 

57</localpath>

 

 

58    </plugin>

 

59    <plugin name="refreshCDN">

 

60<localpath watch="/data0/htdocs/cms.xoyo.com/site/">

 

61    <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" pass wd="xxxx"/>

62    <sendurl base="http://pic.xoyo.com/cms"/>

 

 

es"/>

 

64</localpath>

 

65    </plugin>

 

66</head>

 

为了满足我们的需求,我们需要修改如下几处设置:

 

1 修改 24-28 行的内容,原内容为:

 

 

<localpathwatch="/opt/tongbu">        #定义本地要同步的目录

 

 

<remoteip="127.0.0.1" name="tongbu1"/>  #

 

 

<!--<remoteip="192.168.8.39" name="tongbu"/>-->     #同步到哪个机器,,同步到

 

 

机器的哪个模块

 

 

<!--<remoteip="192.168.8.40" name="tongbu"/>-->

 

 

</localpath>

 

修改后内容为:

 

 

<localpathwatch="/data/web">

 

 

<remoteip="172.16.100.1" name="web"/>     #这里取掉了两旁的注释

 

 

<remoteip="172.16.100.2" name="web"/>     #这里取掉了两旁的注释

 

 

</localpath>

 

 

该文件中分隔符形式为:<!--###########################-->

 

2 修改 31-34 行,认证相关部分:

 

 

<commonParamsparams="-artuz"/>

 

<auth start="false"users="root" passwordfile="/etc/rsync.pas"/>

 

<userDefinedPortstart="false" port="874"/><!-- port=874 -->

 

<timeoutstart="false" time="100"/><!-- timeout=100 -->

 

<sshstart="false"/>

 

修改后内容为:

 

<commonParamsparams="-aruz"/>

 

 

<userDefinedPortstart="false" port="874"/><!-- port=874 -->

 

<timeoutstart="true" time="100"/><!-- timeout=100 -->

 

<sshstart="false"/> 提示:上面的几个配置就是在拼接

rsync -aruz --timeout=100 /data/web

 

rsync_bak@172.16.100.1::www/

 

 

--password-file=/etc/rsync.password

 

 

 

 

 

3)修改 36-37 行

 

 

<failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins exe

 

 

cute once-->

 

修改后内容为

 

 

<failLog path="/usr/local/sersync/logs/rsync_fail_log.sh "timeToExecute="60"/><!--defau

 

 

lt every 60mins execute once-->

 

 

当同步失败后,日志记录到/usr/local/sersync/logs/rsync_fail_log.sh,并且每 60 分钟对失败的

 

 

log 进行重新同步。

 

修改后的完整配置文件为:

 

 

[root@SERSYNC sersync]# cat -n /usr/local/sersync/conf/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="false">

 

7<exclude expression="(.*)\.svn"></exclude>

 

8<exclude expression="(.*)\.gz"></exclude>

 

 

10<exclude expression="^static/*"></exclude>

 

11    </filter>

 

12    <inotify>

 

13<delete start="true"/>

 

14<createFolder start="true"/>

 

15<createFile start="false"/>

 

 

16<closeWrite start="true"/>

 

 

17<moveFrom start="true"/>

 

 

18<moveTo start="true"/>

 

 

19<attrib start="false"/>

 

 

20<modify start="false"/>

 

 

21    </inotify>

 

 

23    <sersync>

 

 

24<localpath watch="/data/web">

 

 

25    <remote ip="172.16.100.1" name="web"/>

 

 

26    <remote ip="172.16.100.2" name="web"/>

 

 

27</localpath>

 

 

28<rsync>

 

 

29    <commonParams params="-aruz"/>

 

 

30    <auth start="true" users="rsync_bak" passwordfile="/etc/rsync.password"/>

 

31    <userDefinedPort start="false" port="874"/><!-- port=874 -->

 

32    <timeout start="true" time="100"/><!-- timeout=100 -->

 

33    <ssh start="false"/>

 

34</rsync>

 

35<failLog path="/usr/local/logs/rsync_fail_log.sh" timeToExecute="60"/><!--default e very 60mins execute once-->

 

 

37    <crontabfilter start="false">

 

38<exclude expression="*.php"></exclude>

 

39<exclude expression="info/*"></exclude>

 

40    </crontabfilter>

 

41</crontab>

 

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

 

 

43    </sersync>

 

 

45    <plugin name="command">

 

 

46<param prefix="/bin/sh" suffix="" ignoreError="true"/><!--prefix /opt/tongbu/mm

 

 

m.sh suffix-->

 

 

47<filter start="false">

 

 

48    <include expression="(.*)\.php"/>

 

 

49    <include expression="(.*)\.sh"/>

 

 

50</filter>

 

 

51    </plugin>

 

 

53    <plugin name="socket">

 

 

54<localpath watch="/opt/tongbu">

 

 

55    <deshost ip="192.168.138.20" port="8009"/>

 

 

56</localpath>

 

 

57    </plugin>

 

58    <plugin name="refreshCDN">

 

59<localpath watch="/data0/htdocs/cms.xoyo.com/site/">

 

60    <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" pass wd="xxxx"/>

61    <sendurl base="http://pic.xoyo.com/cms"/>

 

 

es"/>

 

63</localpath>

 

64    </plugin>

 

65</head>

 

以上的配置文件,我们仅仅配置了针对 SWEB1 和 SWEB2 上 web 这个模块,即/data/web

 

目录的自动同步。由于我们还有一个 download 模块,即/data/download 目录需要进行自动

 

 

同步。因此这就意味着,我们需要配置多实例了。

 

 

Sersync 的多实例和往常的 apache,nginx 一样,你只需要把配置文件拷贝一份出来,然后针

 

 

对不同的实例做不同的修改,然后在最后开启 sersync 服务的时候指定不同的配置文件做启动

 

 

即可!

 

 

配置针对 download 的实例配置文件:

 

 

[root@SERSYNC sersync]# cp /usr/local/sersync/conf/confxml.xml /usr/local/sersync/con

1

f/download_confxml.xml

 

 

修改方法如上,这里仅贴出和上个实例之间不一样的地方:

 

 

23    <sersync>

 

 

24<localpath watch="/data/download">

 

 

25    <remote ip="172.16.100.1" name="download"/>

 

 

26    <remote ip="172.16.100.2" name="download"/>

 

 

27</localpath>

 

 

28<rsync>