Sersync
是金山公司牛人开发出来的一款开源软件,用于
linux
系统之间
web
同步软件
详情请见:
http://code.google.com/p/sersync/
首先检查
linux
系统是否带有
rsync :
[root@lv183 ~]# rpm -qa |grep rsync
rsync-2.6.8-3.1
sersync
需要
linux
内核
2.6
以上
,
安装前请检查版本:
[root@lv183 ~]# uname -a
Linux lv183 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
服务器端安装配置:
需要在
http://code.google.com/p/sersync/downloads/list
下载服务器端软件
目前比较稳定的版本为:
sersync2.5_64bit_binary_stable_final.tar.gz
安装:
[root@localhost sersync]# tar -zxvf sersync2.5_64bit_binary_stable_final.tar.gz
GNU-Linux-x86/
GNU-Linux-x86/confxml.xml
GNU-Linux-x86/sersync2
[root@localhost sersync]# cd ./GNU-Linux-x86/
编辑
confvml.xml
文件
[root@localhost GNU-Linux-x86]# vi confxml.xml
修改
<sersync>
<localpath watch="/usr/local/idoicancms">
<remote ip="192.168.0.***" name="tongbu1"/>
</localpath>
红手字体为需要修改的地方,
/usr/local/idoicancms
"
为需要同步的路径
<remote ip="192.168.0.***" name="tongbu1"/>
表明要将主服务器上本地的
/usr/local/idoicancms
路径下的文件,同步到远程服务器
192.168.0.**
的
tongbu1
模块。
设置访问密码:
<rsync>
<commonParams params="-artuz"/>
<auth start="false" users="transfer" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
Transfer
为访问用户名
;
/etc/rsync.pas
为密码存放处。
在服务器端开启
sersync
守护进程:
[root@localhost GNU-Linux-x86]# ./sersync2 �Cd
目标端配置:
vi /etc/rsyncd.conf
[root@lv183 etc]# vi rsyncd.conf
uid=root
gid=root
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[tongbu1]
path=/usr/local/idoicancms
comment = xoyo video files
ignore errors = yes
read only = no
hosts allow = 192.168.**.**/24
hosts deny = *
~
上面配置文件,表明允许主服务器(假设
ip
为
192.168**.**
)访问,
rsync
同步模块名为
[tongbu1]
,将同步过来的文件放入
path
指定的目录
/usr/local/idoicancms
。
如果有多台从服务器,则每一台都需要进行类似的配置。
配置好之后,使用如下命令,开启
rsync
守护进程
:
开启
rsync daemon
格式
[root@lv183 run]# rsync --daemon --config=/etc/rsyncd.conf
分别将服务器端和目标端守护进程写进
/etc/rc.local
里,这样服务器重启后可以自行启动。
OK ,
以上配置就完成了,很简单吧
,
可以在服务器端新建立个文件来测试同步程序是否启用。
2.
在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步
./sersync -r
如果需要将
sersync
运行前,已经存在的所有文件或目录全部同步到远程,要以
-r
参数运行
sersync
,将本地与远程整体同步一次。
如果设置了过滤器,即在
xml
文件中,
filter
为
true
,则暂时不能使用
-r
参数进行整体同步。
-r
参数将会无效
3.
查看启动参数帮助
./sersync --help
4.
指定配置文件
./sersync -o XXXX.xml
对于
sersync
使用可执行文件目录下的默认配置文件
confxml.xml
,如果需要使用另一个配置文件,可以使用-
o
参数指定其它配置文件。
5.
指定默认的线程池的线程总数
./sersync -n num
例如
./sersync -n 5
则指定线程总数为
5
,如果不指定,默认启动线程池数量是
10
,如果
cpu
使用过高,可以通过这个参数调低,如果机器配置较高,可以用-
n
跳高线程总数。
6.
不进行同步,只运行插件
./sersync -m pluginName
例如
./sersync -m command
,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行
command
插件。
7.
多个参数可以配合使用
./sersync -n 8 -o abc.xml -r -d
表示,设置线程池工作线程为
8
个,指定
abc.xml
作为配置文件,在实时监控前作一次整体同步,以守护进程方式在后台运行。
8.
通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。
./sersync -r -d