[教學]cPanel空間定時自動備份空間檔案並寄至信箱
上次教各位如何利用cPanel自動備份資料庫,雖然說重要的資料庫已經備份起來,但光有資料庫的備份還是不夠。畢竟網站都是由PHP架站程序+MySQL所寫成的,如果沒有檔案那光有資料庫還是不能還原。雖然可以去下載官方的程序,但裡面並沒有你改過的佈景、風格……等重要資料。因此我們還是必須要備份網站的檔案才行。
或許有人會說每個月在手動備份就好。有些Discuz論壇為了會員的方便而開放上傳附件、頭像,但這些東西會員可不會每個月才更新一次,所以囉這些東西管理員也是必須時常去做備份,以免主機掛掉時這些東西也跟著消失,反而會去影響到會員的權益。要管理員每天備份實在有難度,不過俗話說:「科技始終來自於人性」,這時我們就可以再請出「Cron Jobs」來幫大家解決。
上次殺氣介紹的PHP上傳圖片程序--cheverete,我感覺也挺適合用這個來備份喔~!如果你是自己上傳圖片並連到部落格、論壇,你一定不希望這個圖片變成包子,但是免空的品質誰也不能保證。如果能利用腳本來自動備份這些圖片並傳到信箱,相信對大家來說也是一種保障吧!因此殺氣在文中請大家盡量用cP空間的原因也是在此。
這次我們一樣要寫一個腳本,還是運用cPanel、DA空間才有的「Cron Jobs」來排定執行時間,只要設定時間一到空間就會自動執行腳本--備份指定的檔案→把檔案壓縮成壓縮檔→把壓縮檔寄到指定的信箱。不僅僅如此我們還能自己指定要備份的目錄,這樣不費一絲力氣也能輕輕鬆鬆備份檔案,多棒啊~!
第一步:開啟FTP傳輸軟體(FileZilla),登入空間後在「/」底下建立「backup」資料夾。【備1】
第二步:開啟編輯軟體(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 #移除臨時檔案
第三步:將語法的中文改成你自己的資料,並儲存成「filebackup.sh」。【備2】
- 使用者帳號:如下圖中的goodman
- 要備份的目錄:看要備份哪裡的檔案,就填那裏的位置【備3】
- 電子信箱:如下圖中的fff222lf2@gmail.com
第四步:將剛編輯好的「filebackup.sh」上傳至剛剛建立的「backup」資料夾裡面,
第五步:將剛剛上傳的「filebackup.sh」設定權限755。
第六步:進入cP後台,把右方卷軸拉到最下面,點選「Cron jobs」。
第七步:點選「Standard」,直接進入「Cron jobs」的操作畫面。【備4】
第八步:選擇執行腳本的時間、填入腳本的位置後,點選「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」。
第九步:接著就等你指定的時間到後就可以收到備份信件了。【備6】
【備1】為什麼是在「/」底下建立資料夾?
答:因為我們要存放的腳本如果保存不善可能會使整個網站掛點,從你登入空間所看到的第一層目錄就是「/」,一般是最不容易被破解的,因此我們選擇放在這。而一般我們所稱的根目錄「/public_html」就是在它的底下。
【備2】檔案名稱可以自己亂取嗎?
答:基本上是可以的,但是副檔名記得一定要是「.sh」,且第八步腳本位置的那裏也要做更改。
【備3】要備份的目錄那裏該怎麼打呢?
答:固定位置我已經幫你打好了,因此你只需看你想指定哪個位置就打上去吧。(如果不會打,可以在底下留言問我)
- 像根目錄:不用打
- 像wp的佈景打:wp-content/themes
- 像wp的外掛打:wp-content/plugins
- 像dz的風格打:templates
【備4】為什麼我沒有出現這一步,而是直接跳第八步呢?
答:如果你的面板是x3的通常都會沒有;而使用rvskin通常都有這步。
【備5】上面有個框框要填EMAIL,那需要填嗎?
答:可填可不填,那最主要就是告訴你腳本的運作狀況。如果一直沒收到備份信件建議你填一下,它會寄信告訴你腳本哪裡出錯已導致無法運作。
【備6】為什麼收到信件的時間會和我填的不一樣?
答:有兩種可能。
- 信件延遲
- 主機在國外,所以會有時差的問題
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-新增資料夾](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-1.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-複製腳本源碼](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-2.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-修改腳本](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-3.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-上傳腳本](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-4.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-設權限755](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-5.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-進入cron jobs](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-6.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-點選standard](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-7.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-設定](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-8.png)
![[教學]cPanel空間定時自動備份空間檔案並寄至信箱 [教學]cPanel空間定時自動備份空間檔案並寄至信箱-收到信的演示](http://img.shachi.tw/cpanel-backup-file/cpanel-backup-file-9.png)

請問這可以用在DA?
使用者帳號 是空間的帳號? 感謝!
看起来很方便,抽时间试试看。
按照你給的更新代碼改過之後,還是沒法收到有附加檔案的備份郵件,這回傳來的mail則是以下訊息:
tar: +%y%m%d.tar: Cannot stat: No such file or directory
tar: Removing leading `/’ from member names
tar: Error exit delayed from previous errors
bzip2: Can’t open input file +%y%m%d.tar: No such file or directory.
Can’t stat file_date: No such file or directory
file_date: unable to attach file.
rm: cannot remove `file_date’: No such file or directory
rm: cannot remove `+%y%m%d.tar.bz2′: No such file or directory
我也不知道出了什麼狀況
有兩個 第八部 …您在備註的部分打錯了
http://img651.imageshack.us/img651/36/20100805014943.png
是我會錯意了嗎?
囧rz
文章中有兩個 [第八部]
"步" 打錯囉~
嘗試一下這個方法^_^
殺氣:
我的確是寫 /home/carrieli/public_html/blogs 這樣喔,可是還是不行耶!
我雖然設定好了,可是一直都沒有收到備份的空間檔案,有收到一份主旨為:「Cron /home/carrieli/backup/filebackup.sh」的 mail,可是內文開頭是:tar: +%y%m%d.tar: Cannot stat: No such file or directory
tar: Removing leading `/’ from member names
然後就是一連串我的空間檔案位置,以 /home/carrieli/public_html/blogs/ 為開頭(因為我設定要備份 blogs 資料夾底下的檔案)。
不知道為什麼沒有正確備份,會是因為裡頭還有許多壓縮檔的關係嗎?
噢,謝謝咯。用美國那些免費空間,就害怕不穩定,有了每天備份,安心了。
不會啦,反正我就三不五時來轉轉,昨天就讓我等到啦~而且我馬上就設定好了,這樣方便我備份啦 ^_*
大感謝!我剛剛也設定好了,這樣就能每天自動備份空間檔案囉,多謝 ^O^