Linux 通過腳本實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)的自動(dòng)備份
作者:xcbeyond
瘋狂源自夢(mèng)想,技術(shù)成就輝煌!微信公眾號(hào):《程序猿技術(shù)大咖》號(hào)主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗(yàn),樂于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項(xiàng)目的研發(fā)工作,涉及架構(gòu)設(shè)計(jì)、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對(duì)于Java、微服務(wù)、數(shù)據(jù)庫(kù)、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗(yàn)。
在數(shù)據(jù)化飛速發(fā)展的今天,數(shù)據(jù)的定期備份成了數(shù)據(jù)安全首要考慮的問題。一旦出現(xiàn)了問題或故障,導(dǎo)致數(shù)據(jù)無(wú)法正常讀取,那么原有的重要數(shù)據(jù)又如何得以保存下來(lái)呢。當(dāng)然不能采用本機(jī)備份了,這樣的備份風(fēng)險(xiǎn)很大,極有可能雞飛蛋打,如果機(jī)器都宕掉了,本機(jī)備份的數(shù)據(jù)也就沒法利用啦。因此,采取遠(yuǎn)程服務(wù)器作為備份機(jī)(遠(yuǎn)程數(shù)據(jù)備份)就變的很重要了。
遠(yuǎn)程手動(dòng)備份費(fèi)時(shí)費(fèi)力而且還不及時(shí),最好的辦法就是通過腳本實(shí)現(xiàn)遠(yuǎn)程自動(dòng)備份。但遠(yuǎn)程備份無(wú)論是通常通過SSH方法登陸到業(yè)務(wù)服務(wù)器(數(shù)據(jù)服務(wù)器),通過scp拷貝文件時(shí)都說需要不斷輸入登錄密碼。為了解決這個(gè)問題可以采用“SSH證書登錄方式”,實(shí)現(xiàn)SSH無(wú)需輸入密碼來(lái)進(jìn)行登錄啦。說了這么多的廢話,現(xiàn)在就開始一步步動(dòng)手做吧。
1.配置“SSH證書登錄方式(無(wú)密碼驗(yàn)證登錄)”
※具體配置請(qǐng)參看SSH證書登錄方式(無(wú)密碼驗(yàn)證登錄)
2.編輯crontab文件
※crontab是Linux下的一個(gè)命令,位于/etc/crontab,用來(lái)將指定的腳本等在指定的時(shí)間進(jìn)行執(zhí)行,即:定時(shí)用來(lái)某個(gè)任務(wù)。
如設(shè)置每天凌晨1:00執(zhí)行cron.daily中的腳本:
00 1 * * * root run-parts /etc/cron.daily
3.編輯自動(dòng)備份腳本
在/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
通過以上操作就完成了數(shù)據(jù)的遠(yuǎn)程備份。