rsync工具远程数据同步备份

基本信息:

  • A:192.168.1.10 源服务器(源数据服务器)
  • B:192.168.1.20 目的服务器(备份存放服务器)

两台服务器系统均为CentOS

1、在A服务器配置rsync服务端

安装rsync

#yum install rsync

编辑配置文件

#vim /etc/rsyncd.conf
[global]
uid=nobody
gid=nobody
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
Timeout = 600
Log format = %t %a %m %f %b

[backup]
path=/tmp/data_bak
ignore errors
read only = yes
list = no
auth users = backupuser
secrets file = /etc/rsyncd/rsyncd.secrets
hosts allow = 192.168.1.20
hosts deny = 0.0.0.0/0

创建密码文件,采用这种方式不能使用系统用户对客户端进行认证,所以需要创建一个密码文件,其格式为“username:password”,用户名可以和密码可以随便定义,不要和系统帐户重名,同时要把创建的密码文件权限设置为600,一行一个账号密码,账号与密码用:号隔开

#echo "back:abc123" > /etc/rsyncd.secrets
#chmod 600 /etc/rsyncd.secrets

设置备份数据目录权限为755

#chmod -R 755 /tmp/data_bak

开启防火墙并重启

#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
#service iptables save
#service iptables restart

启动rsyncd服务

#/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

2、在B服务器配置rsync客户端

这里很简单,只要安装和配置连接密码即可

#yum install rsync
#echo "abc123" > /etc/rsyncd.secrets

执行备份命令

#rsync -vrtopg --password-file=/etc/rsyncd.secrets backupuser@192.168.1.10::backup /home/data_bak

rsync 命令的选项含义参考:

http://man.linuxde.net/rsync

这里执行这个命令可能会报一些错误,解决办法如下:

  • 问题1:
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

原因:服务器端配置文件/etc/rsyncd.conf中use chroot = yes是否配置

  • 问题2:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。注意查看/etc/rsyncd.conf中的path是否配置正确。

  • 问题3:
rsync: opendir "data/2017-08-29" (in backup) failed: Permission denied (13)

原因:
注意查看服务器端同步的目录权限是否为755。

将备份命令加入任务计划

#crontab -e
* * */1 * * rsync -vrtopg --password-file=/etc/rsyncd.secrets backupuser@192.168.1.10::backup /home/data_bak
标签:备份Rsync 发布于:2019-11-10 10:07:25