當(dāng)廣大Wordpresser歡欣鼓舞地升級(jí)到2.9,享受著在線圖片編輯器、回收站等一系列新功能的時(shí)候,卻發(fā)現(xiàn)Wordpress的生理周期突然失調(diào)了——以前她能夠自動(dòng)地定時(shí)為我們發(fā)布文章、清除緩存、備份數(shù)據(jù)庫(kù)等等等等,而現(xiàn)在這一切都需要我們手工完成。
經(jīng)過在Wordpress官方論壇一番搜尋,發(fā)現(xiàn)原來(lái)這是Wordpress 2.9的大BUG——定時(shí)模塊失效……
又,最近在國(guó)內(nèi)互聯(lián)網(wǎng)“掃黃打非”的狂風(fēng)暴雨下,個(gè)人網(wǎng)站的站長(zhǎng)們被弄得一個(gè)個(gè)誠(chéng)惶誠(chéng)恐,一覺醒來(lái)說(shuō)不定域名就“被”停止解析,服務(wù)器就“被”關(guān)停!所以,及時(shí)備份網(wǎng)站的程序和數(shù)據(jù)對(duì)于當(dāng)下的中國(guó)站長(zhǎng)們極為重要,然而Wordpress 2.9偏偏又在這當(dāng)口來(lái)一個(gè)定時(shí)模塊失效,這的確是雪上加霜!
不過,如今最優(yōu)秀的主機(jī)面板cPanel已經(jīng)越來(lái)越普及了,如果您有幸用上了采用cPanel面板的主機(jī),那么其中的Cron jobs模塊就是雪中送炭了。您不但可以使用Cron jobs結(jié)合Linux bash shell腳本更加細(xì)致地控制各種自動(dòng)定時(shí)作業(yè)——備份數(shù)據(jù)庫(kù)、優(yōu)化數(shù)據(jù)庫(kù)和備份網(wǎng)站程序,還可以永久性地省掉幾個(gè)Wordpress插件,提高Wordpress的運(yùn)行速度。
定時(shí)自動(dòng)備份MySQL數(shù)據(jù)庫(kù)
如右圖所示,首先請(qǐng)?jiān)谀腸Panel面板中的Advanced部分找到Cron jobs。點(diǎn)擊進(jìn)入,您就會(huì)看到Cron jobs的操作頁(yè)面,不過先別著急,我們要首先編寫備份網(wǎng)站數(shù)據(jù)庫(kù)的Linux bash shell腳本。
我們需要首先用mysqldump命令導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)至一個(gè)文本文件,然后用壓縮工具將數(shù)據(jù)文件壓縮打包,最后用mutt命令將數(shù)據(jù)庫(kù)壓縮包發(fā)送至您指定的電子郵件地址。
現(xiàn)在我們開始,請(qǐng)用遠(yuǎn)程登錄軟件(如SecureCRT、Putty)或者FTP軟件(如FileZilla、FireFTP)連接到您的主機(jī),并創(chuàng)建一個(gè)存儲(chǔ)備份腳本和臨時(shí)文件的文件夾,比如我在我的主機(jī)根目錄建立了一個(gè)backup目錄。根據(jù)cPanel主機(jī)的文件夾格式,該目錄的絕對(duì)路徑應(yīng)為/home/cPanel登錄名/backup。
下面以/home/xirangus/backup目錄為例。請(qǐng)打開任意一個(gè)文本編輯軟件,錄入如下內(nèi)容。[XXX]處請(qǐng)更換為您的真實(shí)數(shù)據(jù)(去掉[和])。
cd /home/xirangus/backup #切換到工作目錄
stamp=$(date+%y%m%d) #獲取當(dāng)前日期
mysqldump -u[數(shù)據(jù)庫(kù)用戶名] -p[數(shù)據(jù)庫(kù)密碼] [數(shù)據(jù)庫(kù)名] > db_backup_$stamp.sql #導(dǎo)出數(shù)據(jù)庫(kù)
bzip2 -z -9 -f db_backup_$stamp.sql #壓縮數(shù)據(jù)庫(kù)
mutt [電子郵件地址] -a db_backup_$stamp.sql.bz2 -s "Database Backup" #郵件發(fā)送
rm db_backup_$suffix.sql.bz2 #移除臨時(shí)文件
其中第4行采用了bzip2來(lái)壓縮數(shù)據(jù),如果您的主機(jī)不支持bzip2,請(qǐng)更換為使用tar或zip等命令來(lái)壓縮數(shù)據(jù),具體情況請(qǐng)咨詢您的主機(jī)商。
腳本錄入完畢后,請(qǐng)將其保存,比如我將其命名為dbbackup.sh。然后上傳到剛剛建立的/home/xirangus/backup目錄下,并更改該腳本文件的權(quán)限為755。
大功快要告成,現(xiàn)在請(qǐng)點(diǎn)擊cPanel中的Cron jobs圖標(biāo),選擇Standard進(jìn)入標(biāo)準(zhǔn)模式。將/home/xirangus/backup/dbbackup.sh填入Command to run中,并選擇定時(shí)運(yùn)行方式,如下圖。
這里的時(shí)間是以服務(wù)器的時(shí)區(qū)為準(zhǔn),所以您需要自己換算一下。嘻來(lái)嚷往所在的Just Host的數(shù)據(jù)中心位于美國(guó)中部時(shí)區(qū),比中國(guó)標(biāo)準(zhǔn)時(shí)間晚14個(gè)小時(shí),所以按照上圖設(shè)置,每天中國(guó)標(biāo)準(zhǔn)時(shí)間晚上8點(diǎn),嘻來(lái)嚷往的數(shù)據(jù)庫(kù)備份郵件就會(huì)自動(dòng)被發(fā)送到我的郵箱里。
定時(shí)自動(dòng)優(yōu)化MySQL數(shù)據(jù)庫(kù)
頻繁地對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作,會(huì)使數(shù)據(jù)庫(kù)產(chǎn)生一些錯(cuò)誤和冗余數(shù)據(jù)而導(dǎo)致性能下降,因此及時(shí)修復(fù)和優(yōu)化數(shù)據(jù)庫(kù)也是非常必要的。我們可以采用mysqlcheck命令對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行修復(fù)和優(yōu)化。腳本文件如下。
mysqlcheck -u[數(shù)據(jù)庫(kù)用戶名] -p[數(shù)據(jù)庫(kù)密碼] –auto-repair –database [數(shù)據(jù)庫(kù)名] #檢查并自動(dòng)修復(fù)數(shù)據(jù)庫(kù)
mysqlcheck -u[數(shù)據(jù)庫(kù)用戶名] -p[數(shù)據(jù)庫(kù)密碼] -o –database [數(shù)據(jù)庫(kù)名] #優(yōu)化數(shù)據(jù)庫(kù)
如何讓Cron jobs自動(dòng)運(yùn)行腳本就不再贅述了。
定時(shí)自動(dòng)備份網(wǎng)站程序
有了前面數(shù)據(jù)庫(kù)的列子,備份程序文件就簡(jiǎn)單多了,稍稍修改一下腳本文件就行了。還是以Wordpress為例吧,一般我們修改得最多的就是主題文件,所以我們就讓Cron jobs定時(shí)備份Wordpress的themes文件夾吧。直接給出腳本文件。
cd /home/xirangus/backup #切換工作目錄
stamp=$(date+%y%m%d) #獲取當(dāng)前日期
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" #郵件發(fā)送
rm theme_$stamp.tar.bz2 #移除臨時(shí)文件
雖然tar命令可以使用-j參數(shù)進(jìn)行bzip2的打包+壓縮,但是不能指定壓縮級(jí)別,所以我還是采用了tar先打包,接著使用bzip2最高級(jí)別壓縮的方式。
就介紹這么多吧,如果您熟悉Linux,那么您還可以盡情發(fā)揮,讓Cron jobs完成更多的自動(dòng)定時(shí)作業(yè),使網(wǎng)站的運(yùn)行更加高效和有保障。