系统环境: 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
表示,设置线程池工作线程为8个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,
以守护进程方式在后台运行。
通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。
./sersync2 -r -d