用 sersync 实现多个不同目录向多个节点实时同步

sersync 是 周洋 童鞋写的一个利用 inotify 与 rsync 对服务器进行实时同步软件,相对于直接使用 rsync 来同步来说,它在有大量文件需要同步的时候表现得更加快速,因使用了 inotify 用于监控文件系统事件,省去大量对比文件的时间。这个方案最大的优点就是只针对文件不同的部分进行同步,同时支持使用多线程进行同步,尤其在同步较大文件时,能够保证向多个节点服务器实时保持同步状态。还可以根据需要开启隔一段时间整体同步一次的选项。

起初在文件量小大、而且对实时性要求不高的时候,单独的 rsync 可以很好的满足需求。随便数据量的增大,对数据的实时性提出的新要求,开始全面采用 sersync 来实时向服务器的同步。

一、节点服务器端配置:

数据同步的目标服务器需要开启 rsync

1[root@tci ~]# cat /etc/rsyncd.conf
2uid = www
3gid = www
4max connections=36000
5use chroot=no
6log file= /var/log/rsyncd.log
7pid file= /var/run/rsyncd.pid
8lock file=/var/run/rsyncd.lock
9 
10[www]
11path = /www
12ignore errors = yes
13read only = no
14hosts allow = 192.168.1.3
15hosts deny = *

运行 rsync 的守护进程,默认是加载 /etc/rsyncd.conf 默认不存在,需要新建。

1rsync --daemon --config=/etc/rsyncd.conf

二、主服务器端配置:

下载编译好成二进制的 sersync 解压之后,有两个文件 confxml.xml  sersync2 。其中 confxml.xml 是默认的配置文件

最初只有一台数据同步的目标服务器,用下面的配置就可以轻松实现

1<sersync>
2 
3    <localpathwatch="/var/www/html1">
4        <remoteip="192.168.1.2"name="html1"/>
5    </localpath>
6</sersync>

启动 sersync2 ,让sersync 实时同步之前先全部同步一次数据

1[root@tc sersync]# ./sersync2 -d -r

需要向多个服务器同步时,只需要在目标服务器上启动 rsync 的守护进程,并把IP加到下面就可以了

1<sersync>
2    <localpathwatch="/var/www/html1">
3        <remoteip="192.168.1.2"name="html1"/>
4        <remoteip="192.168.8.5"name="html1"/>-->
5    </localpath>
6</sersync>

开始一直很错误地认为,可以用下面的配置来实时多个目录向多个服务器进行实时同步。后来仔细阅读了一下介绍,这个方法是行不通的,如果需要向多个不同的目录向多个不同的服务器同步,需要写多个配置文件,启动多个 sersync 进程并加载相应的配置文件。

1<sersync>
2 
3    <localpathwatch="/var/www/html1">
4        <remoteip="192.168.1.2"name="html1"/>
5        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
6    </localpath>
7 
8    <localpathwatch="/var/www/html2">
9        <remoteip="192.168.1.3"name="html2"/>
10        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
11    </localpath>
12 
13    <localpathwatch="/var/www/html3">
14        <remoteip="192.168.1.4"name="html3"/>
15        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
16    </localpath>
17</sersync>

比如有两个不同的目录, a 和 b ,需要相应的两个 sersync 的配置文件,启动两个 sersync 就可以实现


1[root@tc]# ./sersync -d -r -o a.xml
2[root@tc]# ./sersync -d -r -o b.xml

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值