Linux 通過腳本實現(xiàn)遠程數(shù)據(jù)的自動備份

作者:xcbeyond
瘋狂源自夢想,技術(shù)成就輝煌!微信公眾號:《程序猿技術(shù)大咖》號主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗,樂于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項目的研發(fā)工作,涉及架構(gòu)設(shè)計、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對于Java、微服務(wù)、數(shù)據(jù)庫、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗。 









 在數(shù)據(jù)化飛速發(fā)展的今天,數(shù)據(jù)的定期備份成了數(shù)據(jù)安全首要考慮的問題。一旦出現(xiàn)了問題或故障,導(dǎo)致數(shù)據(jù)無法正常讀取,那么原有的重要數(shù)據(jù)又如何得以保存下來呢。當然不能采用本機備份了,這樣的備份風(fēng)險很大,極有可能雞飛蛋打,如果機器都宕掉了,本機備份的數(shù)據(jù)也就沒法利用啦。因此,采取遠程服務(wù)器作為備份機(遠程數(shù)據(jù)備份)就變的很重要了。

        遠程手動備份費時費力而且還不及時,最好的辦法就是通過腳本實現(xiàn)遠程自動備份。但遠程備份無論是通常通過SSH方法登陸到業(yè)務(wù)服務(wù)器(數(shù)據(jù)服務(wù)器),通過scp拷貝文件時都說需要不斷輸入登錄密碼。為了解決這個問題可以采用“SSH證書登錄方式”,實現(xiàn)SSH無需輸入密碼來進行登錄啦。說了這么多的廢話,現(xiàn)在就開始一步步動手做吧。

       1.配置“SSH證書登錄方式(無密碼驗證登錄)”

          ※具體配置請參看SSH證書登錄方式(無密碼驗證登錄)


        2.編輯crontab文件

             ※crontab是Linux下的一個命令,位于/etc/crontab,用來將指定的腳本等在指定的時間進行執(zhí)行,即:定時用來某個任務(wù)。

            如設(shè)置每天凌晨1:00執(zhí)行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

        通過以上操作就完成了數(shù)據(jù)的遠程備份。