by jianzi 2013/1/9
一、与使用rsync单向同步的区别是:(2013.10.01纠正:rsync也可以双向同步)
普通单向同步是在源服务器运行rsync守护进程 # rsync -daemon ,在目标服务器执行命令“rsync -artuz -R —delete ….”
使用sersync和rsync实时同步,则在源服务器上安装sersync,运行sersync守护进程,在目标服务器运行rsync —daemon守护进程;

二、部署流水账:
目标服务器1: 192.168.0.100
目标服务器2: 192.168.0.101
源服务器: 192.168.0.22

1、在所有目标服务器上部署rsync守护进程
即:在192.168.0.100和192.168.0.101上
创建 /etc/rsyncd.conf
内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
[dev_www]
path=/home/www #目标服务器上的保存目录
comment = dev
ignore errors = yes
read only = no
hosts allow = 192.168.0.22 #源服务器IP地址,这里允许源服务器推送文件
hosts deny = *

运行rsync守护进程

1
# rsync —daemon

添加到启动文件当中去

1
# echo “rsync —daemon” >> /etc/rc.local

2、在源服务器上安装运行sersync
下载sersync可执行分发包:http://code.google.com/p/sersync/

解压:

1
# tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz

配置:

1
2
#cd GNU-Linux-x86
#vim confxml.xml

修改相关配置段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!— 过滤不需要同步的文件规则 —>
<filter start=”false”>
<exclude expression=”(.).svn”></exclude>
<exclude expression=”(.).gz”></exclude>
<exclude expression=”(.).fla”></exclude>
<exclude expression=”^info/“></exclude>
<exclude expression=”^static/*”></exclude>
</filter>
<!— 打开调试模式 —>
<debug start=”true”/>
<!— 源数据目录 和 目标服务器 —>
<localpath watch=”/root/rsync_data/dev_www”>
<remote ip=”192.168.0.100” name=”dev_www”/>
<remote ip=”192.168.0.101” name=”dev_www”/>
</localpath>

第一次先整体同步

1
# ./sersync2 -r

运行守护进程实时同步

1
# ./sersync2 -d

添加到启动文件中去

1
# echo “/root/GNU-Linux-x86/sersync2 -d” >> /etc/rc.local