业务背景:
客户ERP生产系统安排了数据库定时备份计划,每周五一次全备,每天一次增量备份;数据存储于本机/backup目录,此生产机半年内出现过两次宕机,一次磁盘阵列故障,一次启动分区表丢失;若只在服务器本机上备份数据,没有别的备份,一旦该机器硬盘再出现故障,数据的恢复将会耗时耗力,甚至严重时将彻底破坏而无法重现天日。远程手动备份数据费时费力且不及时,到机房现场备份再取回数据也比较麻烦,最好的方法就是通过脚本实现远程自动备份。
解决方案:
1. 配置SSH证书登录验证
ERP生产机A(192.168.1.208)和数据存储服务器B(192.168.1.233)两台LINUX服务器,现在需要在A(192.168.1.208)机上用root登陆B(192.168.1.233)机,并且不需要输入密码;
1.1在A(192.168.1.208)机上执行以下命令生成钥匙对:
1 | ssh-keygen -t rsa |
在/root/.ssh/路径下会生成id_rsa和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。
1.2把在A(192.168.1.208)机生成的id_rsa.pub拷贝到B(192.168.1.233)机上
1 | scp /root/.ssh/id_rsa.pub root@192.168.1.233:/ |
1.3用root帐号登陆B(192.168.1.233)机,进入其主目录创建authorized_keys文件,并设置好权限。
1 | #cd root/.ssh |
现在A(192.168.1.208)上登录B(192.168.1.233)机将不需要密码可以直接进入。
2.编写脚本
脚本内容如下,保存在/scripts/backup.sh中
1 | !/bin/bash |
3.设置定时执行
1 | su root |
然后输入如下内容
1 | 00 03 * * * /scripts/backup.sh |