基本信息:
两台服务器系统均为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
这里执行这个命令可能会报一些错误,解决办法如下:
@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是否配置
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。注意查看/etc/rsyncd.conf中的path是否配置正确。
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