系统环境: rhel6 x86_64 iptables and selinux disabled
主服务器: 192.168.122.160 server60.example.com
目标服务器: 192.168.122.154 server54.example.com
相关网址: http://code.google.com/p/sersync/
所需的包:sersync2.5.4_64bit_binary_stable_final.tar.gz
1.配置目标服务器
[root@server54
~]# yum install rsync -y
[root@server54
~]# vim /etc/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=/opt/tongbu1
comment
= test files
ignore
errors = yes
read
only = no
hosts
allow = 192.168.122.160
hosts
deny = *
[tongbu2]
path=/opt/tongbu2
comment
= test files
ignore
errors = yes
read
only = no
hosts
allow = 192.168.122.160
hosts
deny = *
只允许主服务器server60访问,同步模块名为[tongbu1]
[tongbu2] ,/opt/tongbu1
/opt/tongbu2 为文件同步目录
[root@server54
~]# mkdir /opt/tongbu1
[root@server54
~]# mkdir /opt/tongbu2
[root@server54
~]# rsync –daemon 后台运行rsync
使用xinetd管理rsync服务
[root@server54
~]# yum install xinetd -y
[root@server54
~]# chkconfig rsync on
[root@server54
~]# /etc/init.d/xinetd restart
2.配置主服务器
[root@server60
~]# yum install rsync -y
[root@server60
kernel]# tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@server60 kernel]# cd GNU-Linux-x86/
[root@server60
GNU-Linux-x86]# vim confxml.xml
...
<sersync>
<localpath
watch="/opt/tongbu1">
(本地同步目录)
<remote
ip="192.168.122.154"
name="tongbu1"/>
(目标服务器列表和同步模块名)
</localpath>
...
[root@server60
GNU-Linux-x86]# cp confxml.xml confxml1.xml
[root@server60
GNU-Linux-x86]# vim confxml1.xml
...
<sersync>
<localpath
watch="/opt/tongbu2">
(本地同步目录)
<remote
ip="192.168.122.154"
name="tongbu2"/>
(目标服务器列表和同步模块名)
</localpath>
...
[root@server60
~]# mkdir /opt/tongbu1
[root@server60
~]# mkdir /opt/tongbu2
[root@server60
~]# cd kernel/GNU-Linux-x86/
[root@server60
GNU-Linux-x86]# ./sersync2 -o confxml.xml -r -d
[root@server60
GNU-Linux-x86]# ./sersync2 -o confxml1.xml -r -d
可查看到如上进程说明启动成功.
测试:分别在server60的/opt/tongbu1和/opt/tongbu2中创建文件或目录,然后查看是否将数据同步到server54的/opt/tongbu1和/opt/tongbu2中
3.运行sersync与sersync启动参数
sersync会对目录进行监控,将变化的目录或文件同步到远程服务器。sersync是递归监控的,如
果有多级目录,都会同步到远程服务器。常用启动方式如下:
在主服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。
./sersync2
-d
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
option:
-d run as a daemon
daemon
thread num: 10
parse
xml config file
host
ip : localhost host port: 8008
daemon
start,sersync
run behind the console
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)
Max
threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)
please
according your cpu ,use
-n param to adjust the cpu rate
run
the sersync:
watch
path is: /opt/tongbu1
在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步
./sersync2
-r
如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行
sersync,将本地与远程整体同步一次。
如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将
会无效
指定配置文件
./sersync2
-o XXXX.xml
对于sersync使用可执行文件目录下的默认配置文件confxml.xml,如果需要使用另一个配置文
件,可以使用-o参数指定其它配置文件。
指定默认的线程池的线程总数
./sersync2
-n num
例如
./sersync2 -n 5
则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用
过高,可以通过这个参数调低,如果机器配置较高,可以用-n调高线程总数。
不进行同步,只运行插件
./sersync2
-m pluginName
例如./sersync2
-m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接
运行command插件。
多个参数可以配合使用
./sersync2
-n 8 -o abc.xml -r -d
个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,
以守护进程方式在后台运行。
通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。
./sersync2
-r -d