[教學]cPanel空間定時自動備份資料庫並寄至信箱
對於一個網站、部落格、論壇來說,最重要的東西末屬於資料庫。資料庫裡面放著你網站的所有資料,包括:網站文章、回覆、網站設定……等。對網站管理員來說經常的備份資料庫是很重要的,萬一主機掛點、資料遺失、被駭客入侵,都還可以利用先前備份的數據進行還原,讓網站能夠盡快恢復現狀、也讓損失降至最低。
使用WordPress的用戶大多都會安裝一個備份資料庫的外掛:WordPress Database Backup或WP-DBmanager,讓外掛自動替你備份資料庫。用外掛備份最大的好處就是可以自己設定時間避免自己忘記或沒空備份,也防止空間掛點可能造成的遺憾。俗話說:多一個外掛就會拖累主機一點速度,因此我們可以利用Cpanel空間的自動排程「Cron Jobs」來備份資料庫,也替你省下使用一個外掛所佔的資源。
架設網站的程序真的太多了,不見得每個管理員都會選WordPress,畢竟還要考慮使用習慣、用途。問題是很多架站程序都沒有像WordPress擁有這種自動備份資料庫的外掛來讓管理員使用。這麼一來,管理員就要每天到網站後台系統的phpMyAdmin去手動備份,只要一天沒備份到就會多一分的危險,所以手動備份不僅很累人也不是明智的選擇。
談到cPanel空間的好處真的是說不完,除了擁有一般架站需要的功能外,還附加許多貼心的小功能如:郵件、流量報表、備份精靈、安全防護……等,而這次我們就是要寫一個腳本,利用cPanel空間才有的「Cron Jobs」來排定執行時間,只要設定時間一到空間就會自動執行腳本--備份資料庫→把資料庫壓縮成壓縮檔→把壓縮檔寄到指定的信箱。這樣不費一絲力氣也能輕輕鬆鬆備份資料庫,多棒啊~!
第一步:開啟FTP傳輸軟體(FileZilla),登入空間後在「/」底下建立「backup」資料夾。【備1】
第二步:開啟編輯軟體(Notepad++),將下面腳本語法複製到文件裡。
cd /home/使用者帳號/backup #切換到工作目錄 stamp=`date +%y%m%d` #獲得當前時間 mysqldump -u資料庫使用者名稱 -p資料庫密碼 資料庫名稱 > db_backup_$stamp.sql #導出數據庫 bzip2 -z -9 -f db_backup_$stamp.sql #壓縮數據庫 mutt 電子信箱 -a db_backup_$stamp.sql.bz2 -s "database backup" #郵件發送 rm db_backup_$stamp.sql.bz2 #移除臨時文件
第三步:將語法的中文改成你自己的資料,並儲存成「dbbackup.sh」。【備2】
- 使用者帳號:如下圖中的goodman
- 資料庫使用者名稱:如下圖中的goodman_wordpress
- 資料庫密碼:如下圖中的test123
- 資料庫名稱:如下圖中的goodman_blog
- 電子信箱:如下圖中的fff222lf2@gmail.com
第四步:將剛編輯好的「dbbackup.sh」上傳至剛剛建立的「backup」資料夾裡面,
第五步:將剛剛上傳的「dbbackup.sh」設定權限755。
第六步:進入cP後台,把右方卷軸拉到最下面,點選「Cron jobs」。
第七步:點選「Standard」,直接進入「Cron jobs」的操作畫面。【備3】
第八步:選擇執行腳本的時間、填入腳本的位置後,點選「Add New Cron Job」。【備4】
- Minute:分鐘,一般建議選擇「:00 top of the hour(0)」(整點)。
- Hour:小時,一般建議選擇「11:00 p.m. (23)」(晚上11點)。
- Day:第幾天,一般建議選擇「Every day」。
- Month:第幾月,一般建議選擇「Every month」。
- Weekday:星期幾,一般建議選擇「Every weekday」。
- Command to run:腳本的位置,填入「/home/使用者帳號/backup/dbbackup.sh」。
第九步:接著就等你指定的時間到後就可以收到備份信件了。【備5】
【備1】為什麼是在「/」底下建立資料夾?
答:因為我們要存放的腳本內有你的資料庫帳號、密碼,從你登入空間所看到的第一層目錄就是「/」,一般是最不容易被破解的。而一般我們所稱的根目錄「/public_html」就是在它的底下。
【備2】檔案名稱可以自己亂取嗎?
答:基本上是可以的,但是副檔名記得一定要是「.sh」,且第八部腳本位置的那裏也要做更改。
【備3】為什麼我沒有出現這一步,而是直接跳第八部呢?
答:如果你的面板是x3的通常都會沒有;而使用rvskin通常都有這步。
【備4】上面有個框框要填EMAIL,那需要填嗎?
答:可填可不填,那最主要就是告訴你腳本的運作狀況。如果一直沒收到備份信件建議你填一下,它會寄信告訴你腳本哪裡出錯已導致無法運作。
【備5】為什麼收到信件的時間會和我填的不一樣?
答:有兩種可能。
- 信件延遲
- 主機在國外,所以會有時差的問題
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-新增backup資料夾](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-1.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-新增dbbackup.sh](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-2.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-編輯dbbackup.sh及儲存](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-3.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-上傳dbbackup.sh](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-4.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-設權限755](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-5.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-進入cron jobs](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-6.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-選standard](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-7.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-打入相關訊息](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-8.png)
![[教學]Cpanel空間定時自動備份資料庫並寄至信箱 [教學]Cpanel空間定時自動備份資料庫並寄至信箱-收信](http://img.shachi.tw/cpanel-backup-mysql/cpanel-backup-mysql-9.png)

你好,不知道能不能備份兩個以上數據庫呢?因為我的 UC 和 DZ 是分開建立數據庫的,還請殺氣指教。
謝謝分享 cPanel 小撇步哦~
mutt我安裝好了 已經不會寄來錯誤
但是只剩下
/home/janan/backup/dbbackup.sh: line 2: date+%y%m%d: command not found
還是會顯示這行
也不會把資料庫寄來,請站長幫幫我 拜託
我至複製你寫得,應該不會出錯吧
stamp=$(date+%y%m%d) #獲得當前時間
沒關係,等你寫
怎樣知道我的空間有沒有支援mutt呢
另外我是寄到gmail.com的信箱
可是我資料庫超過50mb了
這樣以後可以寄嗎?
第五行我是這樣填的 應該不會錯吧
mutt ut801458@gmail.com -a db_backup_$stamp.sql.bz2 -s "database backup" #郵件發送
站長你好 我照你得方法用了
可是他寄給我一封信
內容是:
/home/janan/backup/dbbackup.sh: line 2: date+%y%m%d: command not found
/home/janan/backup/dbbackup.sh: line 5: mutt: command not found
請問出什麼問題呢 幫幫我
嗯,那就期待你寫的檔案自動備份方式囉
很簡單的方法,我也去做設定了,感激分享這項教學
写的挺好的。有空我会常来看看你的博客。
我還是比較愛用外掛
管理起來比較方便
如果用Cpanel的話我怕會忘記友去設定
到時候網站換主機就好笑了
喔!不錯,看起來很實用 顆顆