Linux下使用rsync实现数据在不同服务器之前增量自动备份

 A服务器(服务器一)ip:192.168.0.108

 B服务器(服务器二)ip:192.168.0.109

服务器一的配置
1)编辑/etc/rsyncd.conf文件,rsync的主要配置文件:
 #[globale]
 strict modes= yes
 #check passwd file
 port= 873
 #rsync工具默认使用的端口
 #default port
 logfile= /var/log/rsyncd.log #日志文件存放路径
 pidfile= /var/run/rsyncd.pid #记录rsync运行时的进程ID
 max connections= 4 #同步最大的链接数
 #[modules] #同步模块的配置
 [appName] uid= root #该选项指定当该模块传输文件时守护进程应该具有的uid
 gid= root #该选项指定当该模块传输文件时守护进程应该具有的gid
 ignore errors #忽略一些无关的错误信息
 #要备份的目录
 path= /turbomail/accounts #需要同步的目录
 read only= no #是否设置以只读的方式运行
 host allow= 192.168.0.109  #同步数据的客户端ip如有多个客户端,以“,”隔开即可
 auth users= root  #同步用的用户名
 secrets file= /etc/rsyncd.scrt #同步的密码认证文件

2)编辑/etc/rsyncd.scrt文件,密码认证文件
 root:123456
更改权限为600:chmod 600 /etc/rsyncd.scrt

3)运行rsync --daemon,并在/etc/rc.d/rc.local加入此语句,开机自动启动。
 备注:rsync默认端口873,若安装了iptables,如需改动启动时启动rsync –port 873,请在iptables 中开放该端口,语句如下:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
若873端口没有开放,会报一下异常:
rsync: failed to connect to X.X.X.X: No route to host (113) 
rsync error: error in socket IO (code 10) at clientserver.c(107) [sender=2.6.8]

 4)编辑/etc/xinetd.d/rsync
 rsync服务的监听由xinet来统一分配:
 service rsync {
 disable = no #将此项改为no
 socket_type = stream
 wait = no
 user = root
 server = /usr/bin/rsync
 server_args = --daemon
 log_on_failure += USERID
 }
 重启xinetd以启动rsync服务
 service xinetd restart

 5)查看rsync事故正常运行 输入命令:netstat –ant | grep :873若有显示以下一条语句,则说明rsync服务已经正常启动了。
 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN



服务器二的配置
:  

1)编辑/etc/rsyncd.scrt文件,密码认证文件
 root:123456
 更改权限为600:chmod 600 /etc/rsyncd.scrt

 2)编辑脚本vi /root/scrpit/rsync.sh并加入开机自动启动。
 #!/bin/sh
/usr/bin/rsync -vazu --progress  [email protected]::appName  /oracle/app_backup/appName  -password-file=/etc/rsyncd.scrt
 修改权限:chmod u+x /root/scrpit/rsync.sh
说明:[email protected]::appName    appName是服务器一种配置的模块名


 3)定义为每天凌晨执行一次数据同步。
 crontab -e 加入
 0 0 * * * root /root/scrpit/rsync.sh start

 客户端的配置到此就可以了,服务器与客户端的数据也会每天凌晨执行一次。

异常:

@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]
原因及解决方法:
1、备份路径未建立正确,建立后,同步成功。
2、setsebool -P rsync_disable_trans on

@ERROR: auth failed on module appName
rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]
原因:
     rsyncd里面配置passwd是
          username:password 这样的格式
     客户端使用的时候,不能用这种格式,文件里面只能有password
解决方法:
    1. 文件内容修改
    2. rsync -av --password-file <(echo PASSWORD) src dest

@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
     服务器一中的目录不存在或者权限不足,如果是用root进行备份的,一般是目录不存在。



说明:有关rsyncd的使用参考 http://os.51cto.com/art/201009/225962.htm


你可能感兴趣的:(linux,server,tcp,socket,服务器,service)