为了保证用户数据安全,准备了两台服务器,主服务器是生产环境,运行着业务系统服务,用户希望将主服务器上的业务数据(数据库备份及资料文件)定期备份到同一网段内的另外一台服务器上,由于数据量较大(主要是资料文件较大),最好实现每次增量备份,即每次只备份新增的数据。
rsync
rsync是一个开源实用程序,提供快速增量文件传输。rsync在GNU通用公共许可证下免费提供,目前由Wayne Davison维护。
示例环境
属性 | 版本 | 说明 |
---|---|---|
主服务器系统 | centos-release-7-5.1804.el7.centos.x86_64 | 生产环境,IP:192.168.1.121 。 |
从服务器系统 | centos-release-6-5.el6.centos.11.1.x86_64 | 备份服务,IP:192.168.1.123 。 |
主服务器rsync | rsync version 3.1.3 protocol version 31 | |
从服务器rsync | rsync version 3.0.6 protocol version 30 |
实践过程
安装rsync步骤忽略,主要介绍同步服务配置过程。
1. 主服务器配置:创建从服务器同步用户密码文件
echo "rsyncAdmin:123456" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
2. 主服务器配置:创建提示信息
echo "rsync info" > /etc/rsyncd.motd
3. 主服务器配置:配置rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# [ftp]
# path = /home/ftp
# comment = ftp export area
motd file = /etc/rsyncd.motd
transfer logging = yes
log file = /var/log/rsyncd.log
port = 873
address = 192.168.1.121
uid = nobody
gid = nobody
use chroot = no
read only = no
max connections = 10
[common]
comment = rsync info
path = /home/backup
ignore errors
auth users = rsyncAdmin
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/255.255.255.0
hosts deny = *
list = false
关键属性:
- address是指定主服务器IP。
- [common]是同步标识。执行同步命令rsync时用来标识执行块。
- path是指定同步目录。如示例,执行同步命令时将从主服务器/home/backup目录备份至从服务器指定目录中。
- auth users是从服务器同步用户。
- secrets file是指定存储从服务器同步用户密码的文件。
4. 主服务器配置:启动rsync服务并添加到开机启动
rsync --daemon
echo "rsync --daemon" >> /etc/rc.local
5. 从服务器配置:创建密码文件
echo "123456" > /root/passwd
chmod 600 /root/passwd
6. 从服务器配置:执行同步
拉取命令:
rsync -avz --password-file=/root/passwd rsyncAdmin@192.168.1.121::common /home/backup2/ >/home/backup/rsync.log 2>&1
根据/root/passwd密码文件验证从服务器用户rsyncAdmin,按照192.168.1.121地址下rsyncd.conf中[common]同步块信息,将主服务器/home/backup目录文件同步到从服务器/home/backup2目录下,并将标注日志和错误日志信息全部写入/home/backup/rsync.log文件中。
7. 从服务器配置:创建rsync.sh执行文件并设置定时任务
新建rsync.sh文件,并将第6步中命令写入后授予权限。
touch /home/rsync.sh
chmod 755 /home/rsync.sh
crontab -e ##进入编辑定时任务
0 0 * * * /home/rsync.sh ##每天0点执行rsync.sh脚本文件
注意事项
- 开启主服务器873端口,否则报错如下所示。
rsync: failed to connect to 192.168.19.121: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6]