文件实时同步工具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/
tar xf sersync2.5_32bit_binary_stable_final.tar.gz
cd GNU-Linux-x86
只有两个文件 confxml.xml 、sersync2 一个配置文件,一个执行文件。sersync是从服务端推文件送到远程客户机的。
修改配置文件
vim confxml.xml 找到下面几项
<localpath watch="/data/logs/xman"> //这里是要让sersync监控的本地目录,也就是要同步到远程的目录
<remote ip="192.168.18.12" name="logs_xman"/> //客户机ip 和rsync模块名称 这个需要在客户端那边配置好
</localpath>
如果有多个客户端需要同步(注意,是同一个模块推送到多台,不同模块只能多配置一个xml),增加一个remote 如:
<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 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/
作者:李坤山
您可能感兴趣的文章: