教程集 www.jiaochengji.com
教程集 >  服务器技术  >  文件服务器  >  正文 文件实时同步工具Sersync配置实例

文件实时同步工具Sersync配置实例

发布时间:2014-07-20   编辑:jiaochengji.com
文件实时同步工具Sersync配置实例

    注:有幸得到 Sersync 开发者之一的周洋同学的指点,Sersync的配置文件*.xml  每个xml只能配置一个模块,如果要同时同步多个模块,需要配置多个xml,启动多个线程;

    相对系统自带的rsync,Sersync的同步实现方式更佳快捷,rsync一般是通过计划任务来定期执行,而sersync则是有文件发生改变立即触发同步机制。
    个人认为sersync适合小文件(1M内)内网间的同步,否则当文件大量更新的时候,机子的负载会很高。

    Sersync的原理:
    使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高。

    采用的是inotify内核文件监听机制。
    inotify,从kernel 2.6.13开始正式并入内核,RHEL5支持。

手动安装inotify-tools
inotify-tools-3.14.tar.gz
所以如果你的内核在kernel 2.6.13之后的,只要下载个Sersync的安装包即可。
sersync是在rsync的基础上来开发的,服务是从本地文件推送到客户机,所以客户机需要开启rsync服务,且在rsyncd.conf中的read only 必须设置为no,配置方法请参看另一篇文章:http://www.jiaochengji.com/article/2631.html

开始:
安装过程很简单 下载 安装包 解压就能用了。官网:http://code.google.com/p/sersync/

复制代码 代码如下:
wget http://sersync.googlecode.com/files/sersync2.5_32bit_binary_stable_final.tar.gz
tar xf sersync2.5_32bit_binary_stable_final.tar.gz
cd GNU-Linux-x86

只有两个文件 confxml.xml 、sersync2 一个配置文件,一个执行文件。sersync是从服务端推文件送到远程客户机的。

修改配置文件

vim confxml.xml 找到下面几项

复制代码 代码如下:
 <sersync>
<localpath watch="/data/logs/xman">   //这里是要让sersync监控的本地目录,也就是要同步到远程的目录
<remote ip="192.168.18.12" name="logs_xman"/>   //客户机ip 和rsync模块名称 这个需要在客户端那边配置好
</localpath>

如果有多个客户端需要同步(注意,是同一个模块推送到多台,不同模块只能多配置一个xml),增加一个remote 如:

复制代码 代码如下:
<localpath watch="/data/logs/xman"> 
<remote ip="192.168.18.12" name="logs_xman"/>
<remote ip="192.168.18.13" name="logs_xman_bak"/>
</localpath>

执行 ./sersync2 -r -d -n 12 -o /root/GNU-Linux-x86/confxml.xml

//-r  -d 对本地到远程整体同步一遍后,在后台运行实时同步
//-o参数指定其它配置文件, -n 指定线程总数(默认10)
如果没有出错提示就表示启动ok 。

查看进程

复制代码 代码如下:
[root@qq161 GNU-Linux-x86]$ ps -ef | grep rsync                    
root      5718     1  0  2011 ?        00:00:12 /usr/bin/rsync --daemon
root 10355  9235  0 10:15 pts/2    00:00:00 grep rsync
root     22146     1  0  2011 ?        00:01:10 ./sersync2 -n 12 -o /usr/local/GNU-Linux-x86/confxml.xml -r -d

具体可以查看官网说明http://code.google.com/p/sersync/

原文链接:http://blog.163.com/a12333a_li/
作者:李坤山

您可能感兴趣的文章:

[关闭]
~ ~