Linux VPS自動備份文件並發送到Gmail (適用G級數據的備份)

火幣

linux vps自動備份文件並發送到Gmail (適用G級數據的備份)

 

一,安裝所需程序

  [notification type=”info”] yum install -y mutt vixie-cron[/notification]

二,設置mutt發信參數

[notification type=”info”] $ vim ~/.muttrc[/notification]

寫入下面的內容
[notification type=”info”]

  1. set envelope_from=yes
  2. set from=bak@diavps.com
  3. set realname=”DiaBak”
  4. set use_from=yes

[/notification]
然後設置要接收郵件的Gmail,把bak@diavps.com加入白名單。

三,設置腳本

注意這幾個目錄
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
這些目錄下的文件可以分別每小時,每天,每周,每月自動執行一次。
如果是把腳本程序放置在上面的目錄里,最好把權限設置為0700。
設置更複雜的執行條件可以使用crontab -e命令。詳情請百度。

以每天執行為例

[notification type=”info”] $ vim /etc/cron.daily/diabsk.sh

寫入下面的內容
[notification type=”info”]

  1. #!/bin/bash
  2. # SETTING
  3. TOEMAIL=”bak@diavps.com”;
  4. COMMENT=’blog database backup’
  5. DIR=’wordpress’
  6. # END SETTING
  7. TMP=’/tmp/diabak/’${DIR}
  8. ATTTMP=’/tmp/diabakatt/’${DIR}
  9. rm -rf $TMP
  10. mkdir -p $TMP
  11. cd $TMP
  12. # Put files what you want to backup to $TMP
  13. # Don’t change anything below
  14. YYYYMMDD=`date +%Y%m%d`
  15. SUBJECT=’DiaBak_of_’${DIR}’_’${YYYYMMDD};
  16. rm -rf $ATTTMP
  17. mkdir -p $ATTTMP
  18. cd $ATTTMP
  19. tar zcPf backup.tar.gz $TMP
  20. rm -rf $TMP
  21. split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part
  22. rm -f backup.tar.gz
  23. for file in *
  24. do
  25.         echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL
  26.         sleep 30s
  27. done
  28. rm -rf $ATTTMP

[/notification]
需要更改的內容已經加紅
TOEMAIL為接收郵件的郵箱地址。
TOEMAIL為注釋郵件,以郵件正文發送。
DIR為臨時目錄名,建議僅使用英文和數字。
# Put files what you want to backup to $TMP,這一行下面的命令根據需要自己補充,比如備份數據庫可以把SQL文件導出到$TMP目錄,備份文件可以複製文件到$TMP目錄。

四,導出數據庫的命令。

1.備份單個數據庫
[notification type=”info”]
mysqldump –user=user –password=password –lock-all-tables dbname > backup.sql[/notification]

2.備份多個數據庫
[notification type=”info”]
mysqldump –user=user –password=password –lock-all-tables –databases dbname1 dbname2 > backup.sql[/notification]

3.備份所有數據庫
[notification type=”info”]
mysqldump –user=user –password=password –lock-all-tables –all-databases > backup.sql[/notification]

–lock-all-tables選項可以在備份期間鎖定數據庫防止出現變化,進而導致多個有關係的表不同步,比如A表需要引用B表,備份完A表後,B表發生了變化,之後才備份了B表,這樣數據庫就亂了。
備份上百M的數據庫也只用了幾秒而已,所以這個選項對網站運行影響不大。

五,重新組合備份的文件

Linux下
[notification type=”info”]
$ cat DiaBak* > bak.tar.gz
windows下
copy DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b bak.tar.gz[/notification]
注意分卷後面會有三位數字,cat命令會按這些數字的順序重新組合文件,所以數字不能亂。
copy命令同理,注意數字順序。

六,其他

測試了一個600多M的文件,以20M的大小分成了31個包,通過腳本發送,用時十幾分鐘,期間網速保持在5Mbps到10Mbps之間,本機還有足夠的帶寬,這個應該是GMAIL的上限了。

有些郵件需要過一個多小時才在Gmail顯示出來。31個包全部收到。
如果哪位發現有比Gmail更適合備份的郵箱,期待與大家分享。

贊(0) 打賞
需要國外VPS建站朋友,請聯繫站長! 轉載請註明文章來源:VPSMVP部落 - 便宜VPS|VPS優惠|VPS測評|美國VPS|VPS教程 » Linux VPS自動備份文件並發送到Gmail (適用G級數據的備份)
分享到: 更多 (0)
VULTR

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞




友情鏈接:
 |  趙容部落  |  老左筆記  |  微魔部落  |  便宜VPS  |  vps小學生  |  主機百科  |  老蔣部落  |  老劉博客  |  全球主機  |  全球主機交流  |  數字居民  |  LET論壇  |  veidc測評  |  挖站否  |  VPS收割者  |  主機貼士  |  惠主機  |  荒島  |  VPS GO  |  國外VPS  |  主機之家測評

友情鏈接申請