Linux 通过脚本实现远程数据的自动备份
作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。
在数据化飞速发展的今天,数据的定期备份成了数据安全首要考虑的问题。一旦出现了问题或故障,导致数据无法正常读取,那么原有的重要数据又如何得以保存下来呢。当然不能采用本机备份了,这样的备份风险很大,极有可能鸡飞蛋打,如果机器都宕掉了,本机备份的数据也就没法利用啦。因此,采取远程服务器作为备份机(远程数据备份)就变的很重要了。
远程手动备份费时费力而且还不及时,最好的办法就是通过脚本实现远程自动备份。但远程备份无论是通常通过SSH方法登陆到业务服务器(数据服务器),通过scp拷贝文件时都说需要不断输入登录密码。为了解决这个问题可以采用“SSH证书登录方式”,实现SSH无需输入密码来进行登录啦。说了这么多的废话,现在就开始一步步动手做吧。
1.配置“SSH证书登录方式(无密码验证登录)”
※具体配置请参看SSH证书登录方式(无密码验证登录)
2.编辑crontab文件
※crontab是Linux下的一个命令,位于/etc/crontab,用来将指定的脚本等在指定的时间进行执行,即:定时用来某个任务。
如设置每天凌晨1:00执行cron.daily中的脚本:
00 1 * * * root run-parts /etc/cron.daily
3.编辑自动备份脚本
在/etc/cron.daily/目录下放入脚本
cd /etc/cron.daily/
vi bakeup_script
pg_dump -U postgres voipack > /voipack.sql
pg_dump -U postgres regserver > /regserver.sql
tar -cvjf /aavm.tgz.bz2 /usr/local/aavm
tar -cvjf /oracle.tgz.bz2 /var/oracle
scp /voipack.sql root@218.242.214.20:/root/218.242.214.23_backup
scp /regserver.sql root@218.242.214.20:/root/218.242.214.23_backup
scp /aavm.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup
scp /oracle.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup
通过以上操作就完成了数据的远程备份。