rsync的部署教程网上太多了,我就不详细解释了。

我自己测试部署rsync是借用了抚琴煮酒的文章,说实话,人家那写的那个叫专业啊,汗颜..
链接:http://os.51cto.com/art/201101/243374.htm
我测试安装成功后,主要是把安装步骤写成了个脚本,这样方便以后部署。
不过测试下来,这个rsync的远程数据同步功能还真是强大。。很值得研究研究。
#!/bin/bash
#install rsync.sh
#在准备之前,请创建好需要认证的账户,并设置密码。
if [ `rpm -qa |grep rsync |wc -l` -ne 1 ];then
    yum -y install rsync
else
    mkdir /etc/rsyncd
    echo "uid = root
gid = root
user chroot = no
max connections = 50
timeout = 180
pid file = /etc/rsyncd/rsyncd.pid
lock file= /etc/rsyncd/rsyncd.lock
log file = /var/log/rsyncd.log
[backup]
path=/data2/webappsu/
ignore errors
read only = no
list = no
hosts allow = 192.168.0.0/255.255.252.0
auth users = yunwei
secrets file = /etc/rsyncd/rsyncd.password" >/etc/rsyncd/rsyncd.conf
   
    echo "yunwei:yunwei" >/etc/rsyncd/rsyncd.password
    chmod 600 /etc/rsyncd/rsyncd.password
    if [ ! -d /data2/webappsu ];then
         mkdir /data2/webappsu
    fi
    chmod 777 /data2/webappsu
    rsync --daemon --config=/etc/rsyncd/rsyncd.conf
fi
#开启防火墙端口,并重启服务
sed -i "/ESTABLISHED/a\-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT" /etc/sysconfig/iptables
service iptables restart
#添加开机自启动
echo "rsyncd --daemon --config=/etc/rsyncd/rsyncd.conf" >>/etc/rc.d/rc.local
保存脚本为installrsync.sh
chmod 755 installrsync.sh
直接运行./installrsync.sh 完成后就安装好了。
客户端我们只用检测下是否有安装rsync,如果没有,我们yum下就是了。
另外把服务端的密码保存到客户端,这样可以省去输入密码的麻烦。
echo "yunwei" >/etc/rsyncd.password
然后我们可以运行同步了:
rsync -vzrtgop --delete /data/webappsu/ yunwei@192.168.2.239::backup --password-file=/etc/rsyncd.password
这样我们就可以把本地data/webappsu的目录同步到239的/data2/webappsu目录了。
在crontab中添加同步时间。
10 0 * * * /script/rsync.sh

脚本内容如下:vim /script/rsync.sh

#!/bin/bash

#
# make in 2011/5/16 by mark.li
#rsync.sh
datelog=`date '+%Y%m%d'`
echo "=================================================" >>/script/$datelog
echo "Backup start time in `date '+%Y-%m-%d %T'`" >>/script/$datelog
/usr/local/bin/rsync -av --delete /data/webappsu/ yunwei@192.168.2.239::149 --password-file=/etc/rsyncd.password >>/script/$datelog
if [ $? -eq 0 ];then
   /usr/local/bin/rsync -av --delete /data/tcBaseSearch/indexCreaters/ yunwei@192.168.2.239::149.1 --password-file=/etc/rsyncd.password >>/script/$datelog
   if [ $? -eq 0 ];then
        echo "Backup stop time in `date '+%Y-%m-%d %T'`" >>/script/$datelog
   fi
  mv $datelog /script/rsync/
fi
#此脚本运行后会记录备份日志,每天备份一次,把备份的信息及时间记录在日志中,方便后期维护及查看。
 
问题点:
1、单模块时还是正常,但是在我服务端设置多模块时,在客户端推送时,出现以下错误:

unexpected tag 3 [sender]

rsync error: error in rsync protocol data stream (code 12) at io.c(828) [sender=2.6.8]

后经过查找,原因为2.6.8的一个bug导致的,极度郁闷。

把版本升级至3.0.8版后测试正常。