目前位置
[轉]cPanel主機面板定時自動備份MySQL資料庫
作者:sLoB    發佈於:    文字:【】【】【
摘要:Cron jobs結合Linux bash shell腳本更加細緻地控制各種自動定時作業——備份資料庫、最佳化資料庫和備份網站程序...

當廣大Wordpresser歡欣鼓舞地升級到2.9,享受著線上圖片編輯器、回收站等一系列新功能的時候,卻發現Wordpress的生理週期突然失調了——以前她能夠自動地定時為我們發佈文章、清除緩存、備份資料庫等等等等,而現在這一切都需要我們手工完成。經過在Wordpress官方論壇一番搜尋,發現原來這是Wordpress 2.9的大BUG——定時模組失效…… 註明:目前2.9.1版本已經修復此問題

又,最近在國內互聯網「掃黃打非」的狂風暴雨下,個人網站的站長們被弄得一個個誠惶誠恐,一覺醒來說不定域名就「被」停止解析,伺服器就「被」關停!所以,及時備份網站的程序和資料對於當下的中國站長們極為重要,然而Wordpress 2.9偏偏又在這當口來一個定時模組失效,這的確是雪上加霜!

CPanel

不過,如今最優秀的主機面板cPanel已經越來越普及了,如果您有幸用上了採用cPanel面板的主機,那麼其中的Cron jobs模組就是雪中送炭了。您不但可以使用Cron jobs結合Linux bash shell腳本更加細緻地控制各種自動定時作業——備份資料庫、最佳化資料庫和備份網站程序,還可以永久性地省掉幾個Wordpress元件,提高Wordpress的運行速度。

定時自動備份MySQL資料庫

Cron jobs

如右圖所示,首先請在您的cPanel面板中的Advanced部分找到Cron jobs。點選進入,您就會看到Cron jobs的操作頁面,不過先別著急,我們要首先編寫備份網站資料庫的Linux bash shell腳本。

我們需要首先用mysqldump命令導出整個資料庫至一個文本文件,然後用壓縮工具將資料文件壓縮打包,最後用mutt命令將資料庫壓縮包傳送至您指定的電子郵件地址。

現在我們開始,請用遠端登入軟體(如SecureCRT、Putty)或者FTP軟體(如FileZilla、FireFTP)連接到您的主機,並建立一個存儲備份腳本和臨時文件的文件夾,比如我在我的主機根目錄建立了一個backup目錄。根據cPanel主機的文件夾格式,該目錄的絕對路徑應為/home/cPanel登入名/backup。

下面以/home/xirangus/backup目錄為例。請打開任意一個文本編輯軟體,寫入如下內容。〔XXX〕處請更換為您的真實資料(去掉〔和〕)。

cd /home/xirangus/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_$suffix.sql.bz2 #移除臨時文件

其中第4行採用了bzip2來壓縮資料,如果您的主機不支持bzip2,請更換為使用tar或zip等命令來壓縮資料,具體情況請咨詢您的主機商。

腳本寫入完畢後,請將其保存,比如我將其命名為dbbackup.sh。然後上傳到剛剛建立的/home/xirangus/backup目錄下,並更改該腳本文件的權限為755。

大功快要告成,現在請點選cPanel中的Cron jobs圖標,選擇Standard進入標準模式。將/home/xirangus/backup/dbbackup.sh填入Command to run中,並選擇定時運行方式,如下圖。

Add Cron Jobs/添加定时工作项目

這裡的時間是以伺服器的時區為準,所以您需要自己換算一下。嘻來嚷往所在的Just Host的資料中心位於美國中部時區,比中國標準時間晚14個小時,所以按照上圖設置,每天中國標準時間晚上8點,嘻來嚷往的資料庫備份郵件就會自動被傳送到我的郵箱裡。

定時自動最佳化MySQL資料庫

頻繁地對資料庫進行各種操作,會使資料庫產生一些錯誤和冗餘數據而導致性能下降,因此及時修復和最佳化資料庫也是非常必要的。我們可以採用mysqlcheck命令對MySQL資料庫進行修復和最佳化。腳本文件如下。

mysqlcheck -u[資料庫用戶名] -p[資料庫密碼] –auto-repair –database [資料庫名] #檢查並自動修復資料庫
mysqlcheck -u[資料庫用戶名] -p[資料庫密碼] -o –database [資料庫名] #最佳化資料庫

如何讓Cron jobs自動運行腳本就不再贅述了。

定時自動備份網站程序

有了前面資料庫的列子,備份程序文件就簡單多了,稍稍修改一下腳本文件就行了。還是以Wordpress為例吧,一般我們修改得最多的就是主題文件,所以我們就讓Cron jobs定時備份Wordpress的themes文件夾吧。直接給出腳本文件。

cd /home/xirangus/backup #切換工作目錄
stamp=$(date+%y%m%d) #獲取目前日期
tar -cvf theme_$stamp.tar /home/xirangus/public_html/wp-content/themes #打包主題目錄
bzip2 -z -9 -f theme_$stamp.tar #壓縮
mutt [電子郵件地址] -a theme_$stamp.tar.bz2 -s "Themes Backup" #郵件傳送
rm theme_$stamp.tar.bz2 #移除臨時文件

雖然tar命令可以使用-j參數進行bzip2的打包+壓縮,但是不能指定壓縮級別,所以我還是採用了tar先打包,接著使用bzip2最高級別壓縮的方式。

就介紹這麼多吧,如果您熟悉Linux,那麼您還可以盡情發揮,讓Cron jobs完成更多的自動定時作業,使網站的運行更加高效和有保障。

瀏覽 (4845) | 評論 (0) | 評分(0) | 支持(0) | 反對(0) | 發佈人:sLoB
將本文加入收藏夾
Search
美人時計
文章評論
最新評論
更多評論 發表評論
發表評論
您的評價
差(1) 一般(2) 好(3) 很好(4) 非常好(5)
評論標題
評論內容
驗 證 碼
看不清?更換一張
匿名發表 

© 2011 slobgame.net   website templates by styleshout      Powered by Wayhunt WebSite System 1.5