由于业务扩展,前端采用nginx+keepalive,后端采用nginx负载均衡,所以会有web目录内容同步的需求。为了简便,采用rsync+sersync(原金山周洋开发)开源地址:http://code.google.com/p/sersync/

拓朴为:分发服务器(sersync)和目标服务器(rsync)

目标服务器配置(多台的配置相同):

vi /etc/xinetd.d/rsync

service rsync
{
        disable = yes    #此处的no改为yes,启用rsyncd服务进程
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

vi /etc/rsyncd.conf

uid=root
gid=root
address=192.168.0.101
max connections=10
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[web]
path=/data/web
comment= web site
ignore errors=yes
read only=no
hosts allow=192.168.0.100

hosts deny=*

 

然后重启服务:service xinetd restart

查看rsyncd服务的启动情况:

分发服务器配置(sersync):

下载sersync2.5_32bit_binary_stable_final.tar.gz

解压后,vi confxml.xml

配置说明请参考官方文档,以下只摘取部份内容:

<sersync>
        <localpath watch="/data/web">
            <remote ip="192.168.0.101" name="web"/>

            <remote ip="192.168.0.102" name="web"/>

            <remote ip="192.168.0.103" name="web"/>
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-artuzp"/>
            <auth start="true" users="tongbu" passwordfile="/home/tongbu/rsync.pas"/>
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>

保存后启动服务:./sersync -d -n 5

错误日志请查看less /tmp/rsync_fail_log.sh

error 1280

rsync: chdir failed

实际配置过程中出现以上错误,查看资料是因为目标服务器selinux的关系,使用setenforce=0关闭selinux,同步正常!

写下以备后查!