注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无明

 
 
 

日志

 
 

sersync 实时同步工具  

2011-11-29 16:48:56|  分类: 服务 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

出处:http://code.google.com/p/sersync/

 

     当前版本的sersync依赖于rsync进行同步。如下图所示,在同步主服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在主服务器配置sersync,在同步目标服务器配置rsync。sersync 使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件。



如图所示,在同步主服务器上配置sersync (可以不开启 rsync 服务,这样则可以从主服务器向目标服务器推送数据,但不可以从目标服务器向主服务器拉取数据),在同步目标服务器配置 rsync 并开启rsync守候进程,这样在主服务器产生的文件,就会被sersync实时同步到多个目标服务器。在centos系统下默认已经安装了rsync,只需进行配置,并开启rsync守候进程即可。

 

-----------------------------------------------------------------------------------------------------------------------------------------------

配置同步目标服务器 rsync

 

主服务器:   192.168.1.125

目标服务器:192.168.1.126  (可以多台目标服务器)

 


在多台目标服务器上配置如下,手动配置 rsyncd.conf 配置文件:

vi /etc/rsyncd.conf 

uid = root 
gid = root 
max connections = 10
use chroot = no 
log file = /var/log/rsyncd.log 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsyncd.lock 

[tongbu] 
path = /opt/tongbu 
comment = hello world 
ignore errors = yes 
read only = no 
hosts allow = 192.168.1.125 
hosts deny = *

    上面配置文件,表明允许主服务器(ip为192.168.1.125 )访问,rsync同步模块名为[tongbu] ,将同步过来的文件放入目标服务器指定的目录 /opt/tongbu 。如果有多台从服务器,则每一台都需要进行类似的配置。


配置好之后,开启rsync守护进程:

rsync --daemon –-config=/etc/rsync.conf 


在主服务器上安装配置sresync
 

在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件,这里用sersync2.5进行说明,新版本配置形式类似。

tar -zxvf sersync2.5_64bit_binary_stable_final.tar.gz 
cd GNU-Linux-x86
vi confxml.xml 

修改如下部分:

<sersync> 
        <localpath watch= "/opt/tongbu" > 
           <remote ip= "192.168.1.126" name= "tongbu" />

           <!--<remote ip="0.0.0.0" name="tongbu"/>多个目标服务器则配置多个--> 
        </localpath> 

表示要将主服务器上本地的 /opt/tongbu 路径下的文件,同步到远程服务器   192.168.1.126 上的 tongbu 模块 



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


./GNU-Linux-x86/sersync2 -r -d -o ../GNU-Linux-x86/confxml.xml

(加入rc.local自动启动,防止重启后忘记启动) 

提示如下:

[root@localhost GNU-Linux-x86]# /tmp/GNU-Linux-x86/sersync2 -r -d -o /tmp/GNU-Linux-x86/confxml.xml 
---------------------------------------------------------------------------------------------------
set the system param 
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches 
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events 
parse the command param 
daemon thread num : 10 
parse xml config file 
host ip : localhost     host port : 8008 
config xml parse success 
please set /etc/rsyncd.conf max connections=0 Manually 
sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) 
please according your cpu ,use -n param to adjust the cpu rate 
run the sersync : 
watch path is : /opt/tongbu
---------------------------------------------------------------------------------------------------

表明,sersync已经开启,可以在本地监控路径下建立文件,查看远程是否同步成功。

 

-----------------------------------------------------------------------------------------------------------------------------------------------


运行参数说明:


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


如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。
如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效

./sersync --help 
查看启动参数帮助 
 
./sersync -o XXXX.xml 
指定配置文件 

./sersync -n num 
指定默认的线程池的线程总数 
例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。
 
./sersync -m pluginName 
不进行同步,只运行插件 
       例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。

 

-----------------------------------------------------------------------------------------------------------------------------------------------

 

常见错误: 

ERROR: module is read only
rsync error: syntax or usage error (code 1) at main.c(747) [receiver=2.6.8]
rsync: connection unexpectedly closed (4 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]

解决: 提示打开了read only,将配置文件 read only = no

  评论这张
 
阅读(392)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018