[教學]cPanel空間定時自動備份空間檔案並寄至信箱

上次教各位如何利用cPanel自動備份資料庫,雖然說重要的資料庫已經備份起來,但光有資料庫的備份還是不夠。畢竟網站都是由PHP架站程序+MySQL所寫成的,如果沒有檔案那光有資料庫還是不能還原。雖然可以去下載官方的程序,但裡面並沒有你改過的佈景、風格……等重要資料。因此我們還是必須要備份網站的檔案才行。

或許有人會說每個月在手動備份就好。有些Discuz論壇為了會員的方便而開放上傳附件、頭像,但這些東西會員可不會每個月才更新一次,所以囉這些東西管理員也是必須時常去做備份,以免主機掛掉時這些東西也跟著消失,反而會去影響到會員的權益。要管理員每天備份實在有難度,不過俗話說:「科技始終來自於人性」,這時我們就可以再請出「Cron Jobs」來幫大家解決。

上次殺氣介紹的PHP上傳圖片程序--cheverete,我感覺也挺適合用這個來備份喔~!如果你是自己上傳圖片並連到部落格、論壇,你一定不希望這個圖片變成包子,但是免空的品質誰也不能保證。如果能利用腳本來自動備份這些圖片並傳到信箱,相信對大家來說也是一種保障吧!因此殺氣在文中請大家盡量用cP空間的原因也是在此。

這次我們一樣要寫一個腳本,還是運用cPanel、DA空間才有的「Cron Jobs」來排定執行時間,只要設定時間一到空間就會自動執行腳本--備份指定的檔案→把檔案壓縮成壓縮檔→把壓縮檔寄到指定的信箱。不僅僅如此我們還能自己指定要備份的目錄,這樣不費一絲力氣也能輕輕鬆鬆備份檔案,多棒啊~!

第一步:開啟FTP傳輸軟體(FileZilla),登入空間後在「/」底下建立backup」資料夾。【備1】

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-新增資料夾

第二步:開啟編輯軟體(Notepad++),將下面腳本語法複製到文件裡。

cd /home/使用者帳號/backup #切換到工作目錄
stamp=`date +%y%m%d` #獲得當前時間
tar -cf file_$stamp.tar /home/使用者名稱/public_html/要備份的目錄 #打包的目錄
bzip2 -z -9 -f file_$stamp.tar #壓縮檔案
mutt 電子信箱 -a file_$stamp.tar.bz2 -s "File Backup" #發送信件
rm file_$stamp.tar.bz2 #移除臨時檔案

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-複製腳本源碼

第三步:將語法的中文改成你自己的資料,並儲存成「filebackup.sh」。【備2】

  • 使用者帳號:如下圖中的goodman
  • 要備份的目錄:看要備份哪裡的檔案,就填那裏的位置【備3】
  • 電子信箱:如下圖中的fff222lf2@gmail.com

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-修改腳本

第四步:將剛編輯好的「filebackup.sh」上傳至剛剛建立的「backup」資料夾裡面,

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-上傳腳本

第五步將剛剛上傳的「filebackup.sh」設定權限755

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-設權限755

第六步:進入cP後台,把右方卷軸拉到最下面,點選「Cron jobs」。

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-進入cron jobs

第七步:點選「Standard」,直接進入「Cron jobs」的操作畫面。【備4】

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-點選standard

第八步:選擇執行腳本的時間、填入腳本的位置後,點選「Add New Cron Job」。【備5】

  • Minute:分鐘,一般建議選擇「:00 top of the hour(0)」(整點)。
  • Hour:小時,一般建議選擇「11:00 p.m. (23)」(晚上11點)。
  • Day:第幾天,如果常更新的話可以選「Every day」;如果是不常更新可以選「28th (28)」。
  • Month:第幾月,一般建議選擇「Every month」。
  • Weekday:星期幾,一般建議選擇「Every weekday」。
  • Command to run:腳本存放的位置,請填入「/home/使用者帳號/backup/filebackup.sh」。

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-設定

第九步:接著就等你指定的時間到後就可以收到備份信件了。【備6】

[教學]cPanel空間定時自動備份空間檔案並寄至信箱-收到信的演示

【備1】為什麼是在「/」底下建立資料夾

:因為我們要存放的腳本如果保存不善可能會使整個網站掛點,從你登入空間所看到的第一層目錄就是「/」,一般是最不容易被破解的,因此我們選擇放在這。而一般我們所稱的根目錄「/public_html」就是在它的底下。

【備2】檔案名稱可以自己亂取嗎

:基本上是可以的,但是副檔名記得一定要是「.sh」,且第八步腳本位置的那裏也要做更改。

【備3】要備份的目錄那裏該怎麼打呢

:固定位置我已經幫你打好了,因此你只需看你想指定哪個位置就打上去吧。(如果不會打,可以在底下留言問我)

  • 像根目錄:不用打
  • 像wp的佈景打:wp-content/themes
  • 像wp的外掛打:wp-content/plugins
  • 像dz的風格打:templates

【備4】為什麼我沒有出現這一步,而是直接跳第八步呢

:如果你的面板是x3的通常都會沒有;而使用rvskin通常都有這步。

【備5】上面有個框框要填EMAIL,那需要填嗎

:可填可不填,那最主要就是告訴你腳本的運作狀況。如果一直沒收到備份信件建議你填一下,它會寄信告訴你腳本哪裡出錯已導致無法運作。

【備6】為什麼收到信件的時間會和我填的不一樣

:有兩種可能。

  • 信件延遲
  • 主機在國外,所以會有時差的問題

本文作者: 有殺氣追殺你

個人介紹 | 查看其他文章

臉書留言()
一般留言(18)
  • 您好博主,请问您那图片点击放大是如何实现的,是使用什么程序吗?图片是放自己空间吗?有好的图床推荐吗,谢谢!

    殺氣說:
    圖片放大那是光箱外掛 http://shachi.tw/wp-slimbox2/
    圖片放在圖床,而圖床是我租主機,主機商順便附贈的

  • 呵呵,用wp-machine-time来备份,当发了文章就自动备份到dropbox,感觉不错

    殺氣說:
    感謝你提供好方法
    這好像不錯的樣子,有空再來測試看看

  • 可以设置成..某些特定的几个文件夹吗???
    因为我的根目录比较混乱.

    殺氣說:
    可以啊,文章有提到唷
    /home/使用者名稱/public_html/要備份的目錄
    這段你可以自己改

  • 这个不错,我收下了哈.

    殺氣說:
    收到,感謝你的欣賞

  • 13
    小蛇

    能自動備份sql嗎?

    殺氣說:
    我有寫過喔,可以參考
    cPanel空間定時自動備份資料庫並寄至信箱

  • 12
    uopd

    /home/upwa/backup/filebackup.sh: line 1: cd: command not found
    tar: Removing leading `/’ from member names
    /home/upwa/backup/filebackup.sh: line 5: mutt: command not found
    這是什麼問題?

    殺氣說:
    這篇的網友一樣,你的空間並沒有安裝mutt

  • 11
    blue

    就類似每日備份壓縮起來這樣

    請問可以設定直接備份到自己主機or FTP上嗎?
    因為檔案太大 不可能寄到mail吧!

    殺氣說:
    寄到信箱最主要是怕空間突然掛點因而沒有檔案可以還原
    如果存到FTP上,那檔案還是在空間上,掛點時等於沒有備份到
    另外不可能備份到自己電腦裡,因為兩個是不同的世界(除手動備份)
    目前就你的要求看來只能手動備份囉
    ————————————————
    至於檔案太大是否會寄不到mail 這我就不知道了
    不過我收到最大的檔案是17690KB喔 ~~(我故意安裝X1、WP、7.2、7.0)
    我想一般來說壓縮過後的檔案都會非常的小,如果怕太大可以分開備份(腳本可以指定要備份的目錄)

發表留言