RSYNC单向数据同步手册

前提条件
        root用户登录操作
约束
        该方案为单向同步,需在主控机上进行设置。设置成功后,所有的应用程序更新都必须在主控机上进行,受控机会自动获得更新。
        需要向客户明确告知,在应用程序目录(被同步目录)下,不存在存放网民生成文件的目录,如果有此类目录,需将该目录做共享,而不是同步,否则会造成数据丢失。

一、同步配置1、Server端的配置rsync

A、创建rsync所需目录和文件
#创建rsync目录
[root@localhost ~]# mkdir /etc/rsyncd
#创建rsync的主配置文件
touch /etc/rsyncd/rsyncd.conf
#创建rsync的密码文件
[root@localhost ~]# touch /etc/rsyncd/rsyncd.secrets
       #设置创建的密码文件权限为600
[root@localhost ~]#chmod 600 /etc/rsyncd/rsyncd.secrets
#创建客户连接服务器时显示给客户的消息
[root@localhost ~]# touch /etc/rsyncd/rsyncd.mot
B、rsyncd.conf内容如下:
[root@localhost ~]# vim /etc/rsyncd/rsyncd.conf
                uid = root                #传输文件时守护进程应该具有的uid
gid = root                #传输文件时守护进程应该具有的gid
usechroot = no        #不使用chroot功能
max connections = 5        #设置最大并发连接数以保护服务器
pid file = /var/run/rsyncd.pid        #运行rsync时进程ID文件
lock file = /var/run/rsync.lock        #锁文件的存放位置.指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file = /var/log/rsyncd.log        #指定日志文件路径
[backup(用户输入)]        #这里是认证的模块名,client端需要指定
path = /data/backup(server端的目录)        #指定备份目录路径
ignore errors                #可以忽略一些无关的IO错误
read only = no        
list = yes                #允许列出客户请求时可以使用的模块列表
auth users = test                #设置允许连接的用户
secrets file =/etc/rsyncd/rsyncd.secrets #指定密码文件路径
                #backup end#
#rsyncd.secrets内容如下:
[root@localhost ~]# vim /etc/rsyncd/rsyncd.secrets  #权限一定是600
test:Test_password    #用户名和密码
#rsyncd.motd内容如下:
[root@localhost ~]# vim /etc/rsyncd/rsyncd.motd
Welcome to linuxrsync system!
C、以—daemon方式启动rsync服务
[root@localhost ~]# /usr/local/bin/rsync –daemon –config=/etc/rsyncd/rsyncd.conf

2、rsync client配置

        #创建用户密码验证文件,免去输入密码的麻烦
[root@localhostbakup]# vim /etc/rsyncd.pass
Test_password   #密码验证文件
#设置密码权限为600
[root@localhostbakup]# chmod 600 /etc/rsyncd.pass

3、防火墙设置

[root@localhost ~]#iptables  -A INPUT -p tcp -m tcp –dport 873 -j ACCEPT
        [root@localhost ~]#/etc/rc.d/init.d/iptables save
        [root@localhost ~]#/etc/init.d/iptables restart

二、同步测试

#在rsync client运行此命令语句进行测试
#/usr/local/bin/rsync -vzrtopg –delete –progress  –password-file=/etc/rsync.pas test@rsync_server_ip::backup /home/backup &(指定client端的目录)
注:
test为用户名,rsync_server_ip:服务器端ip,backup为模块名,/home/backup为本地目录
若测试不成功请参加下文常见问题。

三、加入任务计划

同步测试通过后进行crontab配置
#crontab -e
*/5 * * * *  /usr/local/bin/rsync -vzrtopg –delete –progress  –password-file=/etc/rsyncd.pas test@rsync_server_ip::backup /data/backup &
注:同步频率需根据实际情况配置。

四、同步多个文件夹配置

如果需要多个不同目录支持同步,再增加一个认证模块(格式如rsyncd.conf中的[backup]模块),然后在客户端输入同步命令
/usr/local/bin/rsync -vzrtopg –delete –progress  –password-file=/etc/backserver.pas test@rsync_server_ip::backup /data/backup &

五、方案限制

此方案只适用于单向数据同步,同步数据应为网站文件及其他普通文件夹,不可同步数据库。

六、常见问题

问题1
在client上遇到问题:
rsync -auzv –progress –password-file=/etc/rsync.pas root@***.***.***.***::backup /home/
rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端没有设置/etc/rsync.p
as这个文件,而在使用rsync命令的时候,加了这个参数–password-file=/etc/rsync.pas
问题2
rsync -auzv –progress –password-file=/etc/rsync.pas root@***.***.***.***::backup /home/
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端已经设置/etc/rsync.pas这个文件,里面也设置了密码,和服务器一致,但是
服务器段设置有错误,服务器端应该设置/etc/rsync.pas  ,里面内容root:密码 ,这里登陆名不可缺少
问题3
rsync -auzv –progress –password-file=/etc/rsync.pas root@***.***.***.***::backup /home/
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题,是因为服务器端的/home/backup。其中backup这个目录并没有设置,所以提示:chdir failed
问题4
rsync: write failed on "/home/backup2010/wensong": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
rsync: connection unexpectedly closed (2721 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
磁盘空间不够,所以无法操作。
可以通过df /home/backup2010 来查看可用空间和已用空间
问题5
rsync: failed to connect to ***.***.***.***: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
检查服务器的端口netstat –tunlp,远程telnet测试。
问题6
rsync: failed to connect to ***.***.***.***: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
启动服务:rsync –daemon –config=/etc/rsyncd.conf
问题7
rsync: failed to connect to ***.***.***.***: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
解决:对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp 的873端口打开。

问题8

@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
原因及解决办法:
    SELinux;
    setsebool -P rsync_disable_trans on

问题9

@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]
原因:
     rsynd里面配置passwd是
          username:password 这样的格式
     客户端使用的时候,不能用这种格式,文件里面只能有password

Linux数据单向数据同步配置手册 RSYNC单向数据同步手册.doc (49.5 KB, 下载次数: 0)

2013-11-5 11:54 上传

点击文件名下载附件
RSYNC单向数据同步手册

发表评论

电子邮件地址不会被公开。 必填项已用*标注