1、概述
1、说明
目前数据异地备份的通用方案是完成服务器本地备份后将备份文件传输到异地服务器,服务器和服务器之间传输文件推荐使用rsync。
2、前提条件
1、确认业务服务器和备份服务器网络互通
2、确认每台服务器上都装有rsync,版本不限
2、部署
安装rsync:yum install -y rsync
3、数据传输
1、直接传输
说明:两台安装了rsync的服务器可以直接互相传输文件
#将本机的/data/soft/mysql目录传输到192.168.99.200的/data/backup/mysql/目录下
rsync -avz /data/soft/mysql root@192.168.99.200:/data/backup/mysql/
注意:这样的传输方法要求输入root的密码,优点是可以传输至目标服务器的任意路径,缺点是每次传输都需要输入用户名密码。
2、配置自动传输
1、说明:为了能够使用定时脚本自动传输数据,需要将用户名密码写入配置文件。
2、备份服务器的配置
#修改备份服务器的/etc/rsyncd.conf。注意uid和gid。将数据传送到哪个服务器,就修改哪个服务器的配置文件。
uid = 0
gid = 0
[influxdb]
#数据传输目标地址
path = /data/backup/yewu/influxdb
#数据传输使用的用户
auth = qdbackup
read only = false
#数据传输使用的密码文件
secrets file = /etc/rsync.passwd
[mysql]
path = /data/backup/yewu/mysql
auth = qdbackup
read only = false
secrets file = /etc/rsync.passwd
#解释:influxdb和mysql表示模块名称。path表示将模块的数据传输的目标路径,也就是异地服务器的备份路径。建议不同的中间件备份数据建议分别创建不同的模块,配置不同的path。
#编辑rsync使用的密码文件,写入用户名和密码,密码需要符合复杂度要求
vim /etc/rsync.passwd
qdbackup:123456
#设置密码文件的权限,重启rsync服务。确认备份服务器正常监听873端口,且防火墙已开放873端口
chmod 600 /etc/rsync.passwd
service rsyncd restart
3、业务服务器的配置
#在业务服务器上同样配置密码文件
vi /etc/rsync.passwd
qdbackup:123456
chmod 600 /etc/rsync.passwd
4、传输数据
rsync -avz /data/soft/xxxx qdbackup@192.168.xxx.xxx::influxdb --password-file=/etc/rsync.passwd
5、扩展
#测试完成后,将命令写成sh文件
#!/bin/bash
rsync -avz /data/soft/test.txt qdbackup@192.168.99.200::influxdb --password-file=/etc/rsync.passwd
#然后将脚本写入crontab,定时执行传输脚本即可
crontab -e
0 0 * * * /data/soft/backup-remote.sh #每天0点传输数据