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版后测试正常。