如何備份和還原您的網站

已發表: 2018-05-07

在建立您的企業網站時,您通常關心的第一件事是讓您的網站正常運作; 這需要做很多工作,最重要的是讓一切正常運作。

所以,它啟動並運行得很順利,突然,發生了一些事情。 它消失了。 您的文件遺失了。

如果您在本地伺服器上建立了網站,您可能會覺得自己已經有了備份。 你所有的東西都在兩個地方,對吧? 文件存在於伺服器和您的電腦上。

可能會出什麼問題?

不需要太多的想像力就能想到可能會發生什麼事。 您的計算機由於某種原因死機了,可能是意外的電湧,或者您 3 歲的孩子認為將牛奶倒入您的筆記型電腦很有趣。 但是,嘿,您已將其儲存在伺服器上,所以您為什麼要擔心,對吧?

沒那麼快…

如果伺服器出現問題,或者超級便宜且看似可靠的託管提供者在沒有任何警告的情況下破產怎麼辦? 您的網站運行資料庫這一事實怎麼樣? 您是否擁有計算機上每個文件的精確副本?

這就是備份網站變得重要的地方!

在本文中,我將介紹您需要了解的有關備份網站的所有信息,包括原因、內容和方式。

為什麼要備份您的網站?

您應該備份網站的原因有很多。

1. 惡意軟體/勒索軟體

無需過多討論,就可以知道不存在完全安全的系統。 無論您實施多少安全程序和協議,所有系統都容易受到攻擊。

雖然安全程度不同,但有些系統比其他系統更容易受到攻擊。 實際上不可能阻止您的網站免受所有類型的攻擊,如果您確實希望人們使用您的網站,則更是如此。

把它想像成你的房子; 你可以像諾克斯堡那樣把它封起來,但這樣就沒有人能進去了,所以你必須有門。 當然,你的門鎖很好,但總有人可能會從窗戶破門而入。

任何系統中最薄弱的環節都是人。 只需一次錯誤的點擊,或回覆看似重要的電子郵件,就會遭受網路釣魚攻擊。 一旦有人透過軟體或其他方式進入您的系統,他們就有可能控制您的檔案以勒索贖金。

如果您擁有副本,您不必向可能會或可能不會歸還您的網站或文件的未知人士花錢,而不會那麼容易受到攻擊。

2. 刪除的檔案/錯誤的命令/人為錯誤

像是刪除伺服器上錯誤的檔案這樣簡單的事情,無論是在Windows/Mac 上簡單的“單擊/刪除”,還是在Linux 或其衍生產品中使用命令行,都可以擦除金鑰檔案或所有文件。

(在Linux 中,命令rm -r diretoryname 會刪除一個目錄及其中的所有文件,通常無需確認,更糟糕的是, rm -rf / 甚至可以刪除只讀文件和根目錄中的所有內容,這基本上會殺死你的整台機器!)。

3. 駭客攻擊

惡意行為比我們想像的更常見。 有時它甚至不像惡意軟體或勒索軟體類型的駭客攻擊那麼簡單; 有很多人把侵入網站當作一種運動。 即使您可能認為您網站的內容對駭客來說沒有高價值,這種情況仍然可能發生。

對於使用 WordPress 等流行平台的人來說,這尤其是一個風險,這些平台有許多有據可查的弱點,如果不修補,就會給你留下一個大目標。

4. 糟糕的開發者/員工/任何人

許多企業嚴重依賴第三方來設計我們的網站。 在大多數情況下,網頁開發人員和我們其他人一樣誠實。 大多數人(例如<smile>你真正的</smile>)都是偉大而誠實的人(而且謙虛!)。

但是,也許您會遇到付款糾紛? 人們對於道德行為的看法差異很大。 對於有權訪問您網站後端的憤怒(或邪惡)員工來說,如果他們不滿意或出於任何原因,他們很容易簡單地關閉網站。

這是我們不願意考慮的事情,但為了安全起見通常是個好主意。

5. 伺服器崩潰

當技術發揮作用時,它就是偉大的。 在大多數情況下,特別是如果您使用的是可靠且信譽良好的託管公司,伺服器崩潰而資料被清除的情況很少發生。

但即使是最好的供應商也有問題。

此外,如今在許多情況下,您的網站很可能託管在虛擬伺服器上。 換句話說,你的資料並不是在獨立的實體電腦上,而是與許多其他人或企業共享。 託管提供者在一台實體伺服器上託管許多不同的「虛擬」實例是很常見的。

對於大多數廉價的網站託管公司來說,這種情況更為常見,除非您願意花大錢購買自己的實體伺服器,否則您很可能會共享空間。 如果另一個部分出現問題,可能會影響您的網站和文件。

此外,即使您將網站託管在一台實體伺服器上,它本質上仍然只是一台電腦。 雖然伺服器往往儲存在安全的地方,就像您自己的電腦一樣,但仍然有可能出現問題。

伺服器可能會過熱,可能會發生意外的自然災害,在錯誤的時間發生電源波動,甚至可能導致製造商隱藏的缺陷導致資料遺失。

除此之外,伺服器場可能成為協調的專用拒絕服務 (DDOS) 攻擊的目標,​​在極端情況下可能需要完全重新啟動; 這總是存在部分或全部資料遺失的潛在風險。

基於這些原因,通常最好將所有關鍵資料的副本保存在另一個位置,因此,如果其中一種可能,無論發生的可能性有多大(因情況而異)。

您應該在網站上備份哪些內容?

您可能想要備份的內容類型可以分為以下幾類:

1. 文件

這些是構成您網站的所有文件。 它們包括所有頁面/腳本/CSS 文件和圖像或文檔,或作為網站核心部分的任何多媒體內容。

你可以認為這些是不會改變的內容; 它們仍然是靜態物件。 因此,它們通常是網站中最容易管理和備份的部分。

2. 資料庫

很可能的情況是,大多數網站使用資料庫來儲存產品、單一頁面或可能是重複內容變體的其他項目。

如果您的資料庫有些靜態(即網站上的大多數項目很少更改),則保持備份相對簡單,就像檔案一樣。

但是,如果在大多數情況下,這些內容是流動的,例如部落格文章、產品、交易或定期更改或添加的任何其他內容,則您將需要找到一種方法來定期備份這些資料。

3. 電子郵件帳戶

如果您要儲存使用者電子郵件或聯絡資訊的記錄。 您還可能擁有完整的電子郵件伺服器以及透過主機進行的所有電子郵件交易的記錄。 您可能希望保留使用此帳戶的互動、電子郵件和郵件清單的所有記錄。

快速注意:如果您將聯絡資訊儲存在郵件伺服器以外的資料庫中,您還需要備份該資訊!

如何備份您的網站

備份網站並不是特別困難,但首先,您需要了解有多種方法。 它們的品質、可靠性和易用性各不相同(取決於您的技能水平)。 使用多個通常是一個好主意。

1.透過您的虛擬主機

任何好的網站主機都應該為網頁伺服器上的所有檔案建立自動備份。 網路主機應該在內部執行此操作,並且通常會進行每日備份,無論您做什麼。

因此,如果發生任何情況,您應該能夠依靠網站主機的備份。

但是,網站主機通常不會保留多個備份版本,您將受到他們的擺佈。 他們將提供某種工具供您手動建立自己的備份。

例如,您可以透過 cPanel(大多數網站主機使用的通用控制面板)輕鬆建立網站的完整備份。

透過 cPanel 手動網站備份

要使用伺服器的備份工具,您需要詢問您的提供者並閱讀他們提供的任何手冊。 通常,您的文件將儲存為壓縮文件,並將儲存在您的伺服器上。

您可能需要根據您的平台指定您想要的格式類型。 他們還將提供有關如何在必要時恢復備份的說明。

網路伺服器檔案備份 如果您的網站主機確實在伺服器上提供了此備份副本,請確保它儲存在與您的網站不同的伺服器上。 伺服器可能會崩潰!

使用提供者服務的優勢是相當明顯的; 它通常與您的主機無縫連接。

然而,這些缺點與您的託管提供者有關。 雖然他們可能非常擅長託管您的網站,但將所有雞蛋放在一個籃子裡絕不是明智之舉。

如果出現問題,例如他們的伺服器群組著火,或者他們受到駭客的某種攻擊(是的,這種情況確實偶爾會發生;沒有人能倖免,託管提供者是主要目標)。

基於這些原因以及其他原因,偶爾將文件的副本下載到您的電腦是一個非常好的主意。 您可能還希望至少自己手動保留網站的副本。

2.CMS網站備份插件

如果您使用流行的 CMS(例如 WordPress),則可以安裝許多插件,例如 Backup Buddy。 這些非常方便且易於安裝。

然而,備份插件通常會產生降低網站速度的負面影響。 由於 PHP 是 WordPress 的原生程式語言,因此大多數外掛程式也使用 PHP。

雖然這可能很有效,但它往往會運行緩慢,這意味著它們可能會在運行過程中減慢您的網站速度(它們通常會使用生成您網站的同一引擎運行),並且還會為您的網站增加混亂,並且也是比理想更高層次的抽象。

諷刺的是,另一個因素可能會讓您的網站更容易受到攻擊。 PHP 本身存在一些已知的安全性問題,特別是如果所使用的程式碼已經過時或編寫得很草率。

除非您完全確定這些插件中包含的程式碼(說真的,誰有時間仔細研究別人的原始程式碼?),您用來確保資料安全的插件可能會降低其安全性。 (是的,許多都是信譽良好的並且提供高品質的程式碼。我不會在這裡驚慌,但這是需要記住的事情)。

雖然 PHP 是一種很棒的程式語言(它是我最喜歡的語言之一,而且我每天都使用它),但最好讓盡可能多的功能在這個平台之外運行。 通常,如果您想在作業系統層級執行任何備份。

如果您執行的是 Linux 或其任何衍生版本,您可能想要在 Windows 中執行 shell 腳本、批次檔或 Mac 上的 macos 檔案。

3. 手動網站備份

我們中的許多人可能熟悉備份檔案的「老式」方式:製作所有檔案的副本並將它們放在可移動硬碟上或儲存在雲端。

這本質上與您在網站上使用的方法相同,但有一些注意事項。

當然,如果您在本地創建網站,然後透過 FTP(或希望是 SFTP)將其傳輸到您的主機,那麼從技術上講您已經擁有了網站的副本。

然而,有一個關鍵的區別…

如果您的網站上有資料庫,則本機(在測試資料庫中)的內容很可能與即時網站上的內容不同。 如果您使用某種 CMS 軟體(WordPress 等),則尤其如此。

如果是這種情況,則網站上幾乎所有內容都儲存在資料庫中,並且根本不存在於資料庫本身之外的任何檔案中。

備份資料庫實際上相對容易,特別是如果您使用 MySQL。 您只需要取得資料庫的 SQL 轉儲即可; 它只是一個包含資料庫所有內容的純文字檔案。

創建後,只需將其上傳或作為文件運行即可重建資料庫。

命令列方式

這相對簡單。 以下命令將備份整個資料庫。

$ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

如果您想了解有關運行這些以及各種選項的更多詳細信息,請查看 MySQL 文檔

PhpMyAdmin方法

轉到資料庫的匯出選項卡,選擇您需要的所有選項(通常您可能希望包括“刪除表”並建立資料庫選項,以便可以在舊版本上載入新副本,但買家要注意...它會真正清除現有資料並用新副本替換)。

然後,您可以獲得創建的所有文件(源代碼、資料庫和圖像)並將其壓縮並在您喜歡的位置保留副本(我個人喜歡使用雲端存儲,例如 Google Drive 或 Dropbox)。

明顯的缺點是你必須記住這樣做並且很容易忘記。 因此,如果您想更進一步,您可以編寫執行所有這些操作的腳本,並使用系統定期執行這些腳本。

在 Linux 中,透過命令列運行 sql 轉儲,然後將該腳本作為 cronjob 運行,每天、每週或您喜歡的任何時間範圍運行一次,相對容易。

在 Windows 中,您可以使用批次和內建任務排程器。 我的典型方法是執行一個帶有 sql 轉儲的批次處理,然後將整個目錄批次複製到我的 Dropbox 帳戶。

快速提示:您需要定期清理儲存這些內容的目錄; 雖然 sql 檔案(文字檔案)往往很小,但它們會隨著時間的推移而累積,如果您正在運行映像或多媒體檔案的其他備份,您會發現您的磁碟機/伺服器不久就會爆滿。

4.網站備份服務

當然,手動處理所有這些可能會讓人感到有點不知所措; 它仍然需要注意,像忘記清理目錄這樣簡單的事情可能會導致文件被刪除或突然向您的帳戶添加費用(Dropbox 允許免費進行一些演出,但隨後費用很快就會增加)。

因此,如果您正在運行商業站點,那麼使用專業的備份服務可能是個好主意。 這些通常會完成上述所有提到的所有事情,但以更可靠的方式。

與手動備份不同,其他人會為您完成工作並解決您可能遇到的所有小問題。 與插件不同,它們將在您的網站之外運行; 你不需要添加它們。 這樣做不會降低處理速度,也不會造成任何安全漏洞。

以下是一些流行備份服務的非常簡短的範例。 (免責聲明:這並不是一個全面的指南,只是足以了解現有的內容。我尚未測試所有提到的服務)。

  • Sucuri 備份 – 一個很好的解決方案,因為我們建議使用 Sucuri 來確保您網站的安全。
  • 代碼衛士
  • 備份衛士
  • 刪除我的網站

網站備份策略:最佳實踐

無論您選擇哪種方法,備份網站都應該有一個工作流程計劃。

雖然上面提到的所有方法都有效,但您絕對需要製定適當的策略,否則您所提到的任何系統都可能會遇到一些嚴重的漏洞。

制定清單並確定以下類別的答案:

1. 多久備份一次您的網站?

這個很重要。 您想每天還是每月執行備份?

您可能會考慮在每次網站發生變更(新產品、新部落格文章等)時運行一個想法。 這取決於你,但你應該確保你有一個適當的計劃。

2. 自動化調度

遵循上述規定,制定時間表是關鍵。 作為基準,您可能需要設定備份發生時間的計畫。

3.使用遠端存儲

您將這些資料儲存在哪裡? 您不會只想在伺服器甚至筆記型電腦上保留副本。 您要使用外部硬碟嗎? 雲端? 哪個雲端服務?

4. 保留期限

您需要將每個備份的副本保留多長時間? 一年前的文件是否是必要的,或者它們只是積灰,可以用更新的備份替換嗎?

5. 加密

備份的安全性非常重要,特別是如果您擁有專有資訊(例如機密產品定價信息,或更重要的是客戶記錄)。

制定備份加密和保護計畫(AES 256 位元私鑰加密和 TLS/SSL 傳輸安全)。 了解有關加密的更多資訊。

6. 在 RAID 陣列上儲存備份

RAID 陣列(獨立磁碟冗餘陣列)不僅是建立網站和/或資料的多個副本的好主意,而且還可以提高效能。

如果其中一個磁碟發生故障,它們將提供額外的保護。 這是專業備份服務提供的典型功能。

7. 選擇性恢復

制定適當的程序,以防您不需要恢復站點的每個部分。 也許大部分都很好,但有些部分可能已經丟失了。

例如,如果一個產品表損壞,您只需替換 SQL 轉儲中的該部分即可。 這通常比清除所有內容來替換一個文件更好。

事實上,如果出現問題就更換所有東西是一個常見的錯誤。 當然,這可行,但您將丟失上次備份後發生的所有內容。

最好確定是否需要更換所有東西。 如果其他方法都失敗,請保存完整備份作為最後的手段。

如何恢復網站備份

好吧,你的網站消失了,但你有備份。 如何從備份中還原您的網站? 這個比較簡單。

如果副本儲存為 zip 文件,只需將其解壓縮並將所有文件加載回其原始位置即可。

取得 SQL 檔案(在 SQL 轉儲期間建立的文字檔案),然後使用命令列重新建立資料庫,或使用 phpMyAdmin(或任何其他圖形資料庫管理系統,如 MySQL Workbench),然後匯入檔案或將整個內容複製到SQL視窗中並運行它。

在本地進行測試,如果一切正常,則將其全部載入到伺服器上。 您應該立即恢復並運行。

如果您使用專業的備份服務,此過程可能會更容易。 任何體面的服務都應該為您提供用於恢復備份的工具,無論是部分恢復還是完整站點恢復。

額外提示:使用分期進行開發

除了簡單備份現有文件之外,如果您正在開發自己的網站,或與開發團隊合作,您可能想要考慮使用版本控制系統來記錄開發過程中的所有階段。

建立網站時,通常會出現網站設計方式的版本和變更。 也許您正在對網站進行徹底的重新設計,但想保留舊網站的副本。

此外,通常情況下,在開發網站時,會出現嚴重錯誤,您需要找到更改前的文件。 您還需要保留網站的本機開發版本,以便在公開啟動網站之前進行更新或變更。

這就是版本控制系統發揮作用的地方。 這與每次進行更改時製作資料夾副本類似,但更有組織性,並且可以允許協作開發。

Git 是一個出色的工具,可以讓您的開發過程井然有序。 它不僅可以在本地創建良好的程式碼備份,還可以輕鬆地在雲端來回移動以實現安全的遠端備份。

而不是在不同的目錄中擁有多個文件副本; 它們儲存在分支中,這可以使多人處理文件而不會產生太多衝突風險。

當它們準備好時,可以將它們合併到主要開發分支中,並最終合併到要部署的主分支中。

以下是兩個最受歡迎的 Git 儲存庫。

  • 如果您願意分享原始程式碼(它的核心是開源),GitHub 是免費的,而且還提供非常實惠的私有程式碼儲存庫。 它也是查找程式碼片段的好地方,並且擁有一個很棒的開發人員社區
  • BitBucket 類似; 雖然社區規模不大,但他們確實免費提供一些私人儲存庫。

結論

雖然某些方法比其他方法具有更好的優勢,但備份網站是不容忽視的必要條件。 理想情況下,您應該考慮使用上述方法的組合。

確保您擁有文件的重複副本將為您節省日後的麻煩。 即使您的網站沒有發生任何不好的事情,並且您不需要這個,請想想您將獲得額外的睡眠,而無需擔心它。

您備份電腦上的檔案; 您的網站應該遵循相同的規則。