淺談Windows系統(tǒng)下的網(wǎng)站備份與恢復(fù)

之前寫了利用命令行工具創(chuàng)建LinuxMac系統(tǒng)下網(wǎng)站備份的文章,但是windows系統(tǒng)無法采用命令行工具進(jìn)行網(wǎng)站備份,這個時候我們就需要借助第三方工具了。欲知詳情,且看下文介紹。
目前仍有很多網(wǎng)站運營商沒有做好備份工作,一旦網(wǎng)站突然“罷工”或遭到病毒感染,一切數(shù)據(jù)、資源、心血都將付諸東流。
一、前期準(zhǔn)備
有的網(wǎng)站托管商會提供備份服務(wù),當(dāng)然你也可以購買一些附加的備份服務(wù)和插件。但本文的寫作前提是你的網(wǎng)站托管商不提供備份服務(wù),我們自己通過免費的軟件進(jìn)行網(wǎng)站備份。
首先,準(zhǔn)備以下三個工具:
這是一個能夠訪問網(wǎng)站文件的開源FTP客戶端。
2.Adminer
一款管理數(shù)據(jù)庫的簡便安全的工具。
3.網(wǎng)站的FTP登錄憑據(jù) (含獲取網(wǎng)站FTP憑據(jù)具體攻略)
- 可以在主機(jī)賬戶中找到
- 需要一個用戶名、密碼以及主機(jī)名或IP地址
在你自己的電腦上安裝Filezilla(與Windows、Linux、Mac系統(tǒng)兼容),從Adminer網(wǎng)站下載PHP文件,確認(rèn)已經(jīng)獲得FTP主機(jī)名、用戶名與密碼。
注意:雖然Filezilla是一個非常好用的跨系統(tǒng)FTP客戶端,但它不會安全地存儲用戶密碼,因此使用時不要選擇“記住密碼”。的確,每次登錄都輸一遍密碼很麻煩,但是出于安全考慮,這樣的捷徑還是不要走。
二、開始備份
你的網(wǎng)站存有大量網(wǎng)站文件以及一個或多個數(shù)據(jù)庫(通常只有一個)。
這些文件包括你的核心CMS(內(nèi)容管理系統(tǒng))、擴(kuò)展名/主題文件以及你上傳到該網(wǎng)站的所有照片/媒體。
數(shù)據(jù)庫指的是網(wǎng)站內(nèi)容(如博客文章)及設(shè)置(擴(kuò)展/主題設(shè)置和用戶信息)的存儲位置。
因此我們完成完整備份的標(biāo)志就是備份網(wǎng)站文件與數(shù)據(jù)庫。
1. 文件
打開Filezilla。
首先在File(文件)菜單中點擊Site Manager(網(wǎng)站管理員)按鈕。打開后在這里輸入你從主機(jī)賬戶抓取的FTP登錄憑據(jù):
通常情況下,常規(guī)的FTP即可。雖然SFTP和TLS相對來說更加安全,而且有時使用的協(xié)議需要根據(jù)托管服務(wù)供應(yīng)商或具體服務(wù)器來確定。
友情提醒:FTP默認(rèn)使用21號端口,SFTP默認(rèn)使用22號端口。有時你要把你的FTP登錄憑據(jù)設(shè)置得沒有規(guī)律性一點才能保證它們正常工作。如果在設(shè)置方面存在困難,可以與你的托管商溝通,獲得他們的協(xié)助。
OK,成功登錄。
該面板左側(cè)是本地計算機(jī)中的文件,右邊的則是服務(wù)器上的網(wǎng)站文件。基本上我們只需將服務(wù)器上的文件拖到本地計算機(jī)上即可。可以放心的是,服務(wù)器上的文件仍會保留,不會被刪除。
首先,找到你網(wǎng)站的public根目錄(在這種情況下是public,也有可能是public_html、httpdocs等),點擊并將其拖動到你電腦上的某個文件夾。
友情提醒:如果你的網(wǎng)站使用了緩存插件,在備份網(wǎng)站之前清除緩存。這些文件應(yīng)該是定期刪除的,但如果你的緩存文件是從2011年開始的,那么這一步操作能幫你節(jié)省很多備份的時間。
這里介紹一個我每周備份的命名小技巧(非常重要):
好用的備份命名技巧
現(xiàn)在開始文件傳輸。這個過程會花一點時間,特別是如果你的網(wǎng)站上有很多照片或插件,又或者你的網(wǎng)站運行在一個速度很慢很low的服務(wù)器上。
傳輸完成后Filezilla一般都會發(fā)出自動通知。如果沒有,程序底部的文件傳輸列會顯示空白,說明你發(fā)出的文件傳輸指令已經(jīng)完成。
第一階段完成!
2. 數(shù)據(jù)庫
現(xiàn)在我們開始備份數(shù)據(jù)庫。首先,把你之前下載的那個adminer.php文件拖到你網(wǎng)站的根目錄下,如下圖所示:
友情提醒:完成這一步后一定要刪除服務(wù)器上的adminer.php文件。最好不要把這些暫時用不到的工具遺留下來,容易產(chǎn)生安全隱患。
現(xiàn)在請打開瀏覽器并輸入yourwebsite.com/adminer.php,你應(yīng)該會看到下圖的頁面:
登錄數(shù)據(jù)庫。如果你不知道你的數(shù)據(jù)庫登錄憑據(jù),可以在Filezilla的服務(wù)器上打開網(wǎng)站配置文件:WordPress上的是wpconfig.php、Joomla上的是configuration.php、Drupal上的是settings.php。右擊文件并用文本編輯器打開,我們就可以在上面找到登錄信息。
以WordPress中的 wpconfig.php存儲數(shù)據(jù)庫登錄憑證為例
將憑據(jù)輸入Adminer后登錄成功并顯示如下頁面:
現(xiàn)在我們要做的是將數(shù)據(jù)庫以單個文件的形式導(dǎo)出,并下載到自己電腦上。點擊左側(cè)的“Export”(導(dǎo)出)按鈕,頁面上會跳出一個數(shù)據(jù)庫的轉(zhuǎn)儲面板:
選擇“Save”并單擊底部的“Export”按鈕,頁面上會出現(xiàn)下載提示。把這個文件保存在與網(wǎng)站文件相同的存儲位置。通常情況下這個過程幾分鐘就可以完成。
但有些網(wǎng)站的數(shù)據(jù)庫龐大,所需的備份時間就會更長。有時還會出現(xiàn)服務(wù)器超時的情況,雖然比較少見,但是如果真的發(fā)生了,建議從主機(jī)賬戶直接下載數(shù)據(jù)庫副本。
完成到這里就可以說你已經(jīng)無敵了。不管什么系統(tǒng)都難不倒你。既然學(xué)會了備份,那就一定要把備份工作變成你的日常習(xí)慣——至少每周一次。
三、備份安全
下面我們將介紹保護(hù)備份安全的重要性。
備份是為了防止意外,但是如果備份的東西沒有得到安全保護(hù),那么關(guān)鍵時刻我們還是會功虧一簣。因此必須將備份文件存儲在安全的位置,并采取一定的措施防止無關(guān)人員訪問或被惡意人員利用造成網(wǎng)站被入侵。這些備份中包含著很多重要信息。比如網(wǎng)站配置文件就是數(shù)據(jù)庫的訪問入口。
舊的備份中還包含著大量沒有更新過的核心文件、主題和擴(kuò)展名。不再更新的軟件往往是網(wǎng)站遭受攻擊的罪魁禍?zhǔn)?我發(fā)現(xiàn)很多網(wǎng)站都會把他們的備份存儲在活動服務(wù)器的/old以及/backup目錄下。這種做法等于把你的網(wǎng)站拱手讓給了那些哪怕是“修為”很低的攻擊者。
把備份放在本地計算機(jī)、外接硬盤或CD/DVD上都是相對來說更加安全的選擇。另外我們也建議對備份數(shù)據(jù)進(jìn)行密碼保護(hù),防止這些數(shù)據(jù)被濫用或被無關(guān)人員獲取訪問權(quán)限。至于如何加密還是取決于你所使用的操作系統(tǒng)。
四、如果我的網(wǎng)站被入侵了怎么辦?
當(dāng)用于管理網(wǎng)站的計算機(jī)感染惡意軟件時,該網(wǎng)站也會受到威脅。鍵盤記錄器、木馬和其他惡意軟件都可以盜取FTP憑據(jù)或訪問存儲在計算機(jī)上的網(wǎng)站備份。無論你使用的是什么操作系統(tǒng),請務(wù)必使用合適的防病毒程序掃描計算機(jī)中的惡意軟件。
你可能會擔(dān)心,如果網(wǎng)站被入侵了,并且用自己的電腦來存儲備份文件,那么你把惡意軟件下載到自己電腦上的可能性就很大了。這個擔(dān)心是合理的。但是,大多入侵網(wǎng)站的惡意軟件都是PHP格式,或者是用其它服務(wù)器端的腳本語言編寫的,一般與web服務(wù)器兼容,而不會在桌面、筆記本、平板等設(shè)備上執(zhí)行。
盡管如此,我們還是需要對網(wǎng)站進(jìn)行有效的安全監(jiān)控,及時阻止入侵行為。
如果你下載了受感染的備份文件,一個好的反病毒軟件也能救你一命。通過反病毒軟件對計算機(jī)進(jìn)行全面徹底的病毒掃描往往能發(fā)現(xiàn)系統(tǒng)中的威脅文件,當(dāng)然也包括受感染的備份文件。
五、如何恢復(fù)備份
假設(shè)由于某些更新、配置錯誤或不兼容的軟件,你的網(wǎng)站被黑或出現(xiàn)白屏問題(內(nèi)部服務(wù)器錯誤),那么我們就需要恢復(fù)以前備份的東西。
1. 恢復(fù)文件
假設(shè)我已經(jīng)在本地計算機(jī)上存儲了網(wǎng)站備份文件,文件恢復(fù)工作其實也相當(dāng)簡單,就是把我們之前的備份步驟逆向操作一遍。首先,將需要恢復(fù)的備份文件拖到網(wǎng)站的public根目錄下。
這時頁面會跳出你希望Filezilla對這些傳輸文件執(zhí)行什么操作的提示框。因為我們需要這些本地文件替換服務(wù)器上的文件,因此選擇“Overwrite(覆蓋)”以及“ Always use this Action(始終執(zhí)行此操作)”、“ Apply to Current Queue Only(應(yīng)用于當(dāng)前文件)”。
2. 恢復(fù)數(shù)據(jù)庫
重新登錄Adminer并將adminer.php文件重新上傳到服務(wù)器(因為之前完成工作后你已經(jīng)把這個文件刪除了對吧)。