歡迎光臨
每天分享高質量文章

只需五步,完美利用命令列工具創建LinuxMac系統下的網站備份

創建網站備份應該是一個網站管理員最為重要的日常工作之一。但現實情況是,備份這一步往往被很多人忽略,也就是說仍然有很多網管的網站安全意識較低。

所有的Linux/Mac用戶都能夠零經濟成本地通過命令列工具創建網站備份。如果你用的不是Linux/Mac,請關註我們的後續文章——如何在windows上通過軟體方式創建備份。

本文的初衷不是為讀者提供完整的備份解決方案,而是給那些有時間並且想要學習一些基礎的命令列工具進行網站備份的寶寶們一點參考。

必要條件

你的主機必須具備必要的軟體及證書。

服務器上的軟體:

tar

電腦上的軟體:

SSH(用於創建/刪除備份檔案)

SCP(用於下載備份檔案)

Terminal(例如gnome-terminal,用於運行所有命令)

所需信息

服務器IP及SSH證書

資料庫證書

網站根目錄(以及你想在備份中加入或排除內容的目錄)

資料庫:MySQL、PostgreSQL或SQLite(如果你的網站使用其中一種)

備份創建的具體步驟

一旦將你的電腦與服務器相連接,你就可以快速地通過命令進行網站備份。

通過SSH連接服務器:

SSH是Secure Shell的簡寫,通常用於遠程命令的執行。

打開terminal,鍵入以下命令,通過SSH協議連入你的服務器:

在terminal中連上服務器後,你鍵入的每一條命令都在你的服務器上執行。接下來,我們要在服務器上創建一個名為“backup(備份)”的新檔案夾。只要不是公開的,你可以把這個檔案夾放在任何地方。

如果你的web應用根目錄為:/home/username/html,那麼我們就能夠順利在 /home/username/中創建“backup(備份)”的檔案夾。一旦備份傳輸到了電腦,就可以刪除服務器上的備份記錄。

如果你不知道自己的網站根目錄,可以在cPanel賬戶中找到該信息:

上圖中我們可以看到該網站的根目錄是:/home/ma658tvk

在Linux/Mac操作系統中,你可以使用mkdir命令創建目錄。例如:

該命令能夠幫你在/home/username/中創建“backup”目錄。

在該檔案夾中,我們已經創建了4個子目錄:dbcorelogs以及conf

註意mkdir命令中的-p符號,該符號表示:在某目錄已經存在但仍然按需創建主目錄的情況下不會報錯。

將整個應用進行備份的工作非常關鍵,包括資料庫轉儲檔案、核心檔案、插件以及媒體檔案。如果你想更加細節化一些,還可以對服務器配置檔案及日誌進行備份。在執行取證分析時,備份資料就更是尤為重要了。

匯出資料庫

我之所以熱衷於使用命令列工具是因為在進行資料庫備份時都無需再用到其它附加工具。大多數的資料庫引擎都具備命令列功能,只需要拿到資料庫證書,整個過程簡單粗暴高效。

下麵的命令將匯出一個資料庫轉儲檔案並將其放在:/home/username/backup/db/

如果你的網站採用的是MySQL,可運行以下命令:

若為PostgreSQL,則運行這個命令:

這些命令會用到用戶名密碼。輸入後(你的terminal中看不到這些字符)轉儲檔案將儲存在事先準備好的backup檔案夾中。

如果網站用的是SQLite,那麼你只需要複製該檔案即可:

創建網站檔案的Tar檔案

現在我們要做的是壓縮網站核心檔案(為了方便起見)。在你的服務器上安裝tar程式,並確定核心檔案以及其它你想備份或不備份檔案的具體位置。

我們再次假設你的網站儲存在:/home/username/html。那麼使用以下命令創建tar檔案:

如果你想涵蓋/home/username/html中的所有檔案,那麼上面這個命令就非常好用。但如果你不想包含全部呢?

假設你的網站架構如下:

如果我們壓縮了整個目錄,那麼快取(cache)檔案夾也會被備份。而快取檔案完全沒有必要備份,如果刪除這部分內容,可以節省很多時間、節約帶寬。但如果使用tar命令,我們可以通過-exclude這一標識將不需要備份的目錄排除。下麵我們在排除快取目錄的情況下對網站目錄進行再次壓縮:

另外,名為core.tar的voilà – a .tar檔案會儲存在/home/username/backup/core/中。你也可以一直使用-exclude命令對你不需要備份的內容進行排除。

可選:對配置或日誌檔案進行備份

就個人經驗來說,我已經多次受益於配置和日誌檔案的備份了。比如,我已經很多次忘記我的“httpd.conf”長啥樣了,所以每次我都通過查電腦上的備份來解決這個難題。我是一個很懶的人,但請諒解——這個習慣常常能幫上大忙,日誌檔案也是。

配置檔案和日誌檔案沒有通用位置,但你可以在tar命令中添加多個位置。例如:

第一行末尾的“\”符號表示按“Enter”鍵時,terminal不執行命令,而表示該命令含多行的意思。最後一行命令末尾不含“\”字符,表示terminal可以執行命令。這樣,你就可以創建一個包含你系統不同檔案夾中的配置/日誌檔案的.tar檔案了。

只要你在備份的服務器中安裝了正確的軟體,恢復配置檔案只會讓你對配置檔案進行複製。如果要在生產服務器中恢復配置檔案,但軟體不同,恢復過程可能會發生很多錯誤。務必小心。

最終備份

創建最終的tar檔案

到這裡,我們已經把/home/username/backup/檔案夾下所需的檔案都準備好了,現在我們只需要創建.tar檔案並把它下載到我們自己的電腦上即可。雖然我們也可以在不壓縮的情況下下載整個備份檔案夾,但是我還是建議以單個壓縮檔案的方式下載(更加保險、安全)。

該命令將創建一個名為“latest.backup.tar”的檔案,包含所有的備份檔案。在terminal中輸入“exit”就能斷開個人電腦與服務器的連接。

通過SCP下載檔案

我們需要通過scp命令來下載latest.backup.tar這個檔案:

該命令的作用就是從服務器上抓取該.tar檔案,並將它下載到你電腦上“ /home/username/backups/domainname/”的檔案夾,然後根據標準日期命令對該檔案夾進行重命名(如backup_20170730_142422)。

從服務器中刪除備份

現在網站備份已經安全地躺在你的電腦里了,我們也就可以放心地刪除服務器上的備份記錄了。

首先,通過SSH重新登錄服務器,運行以下命令:

上面第一個命令的作用是刪除服務器上最後的tar檔案,第二個命令用於幫助你從服務器遞迴地刪除備份檔案夾。

警告!務必確保檔案和檔案夾路徑的準確性,因為要想恢復通過命令列刪除的東西非常困難,而且恢復難度也會隨著時間的增加而增加。一旦某檔案被刪除,該檔案的所有鏈接均被破壞,操作系統也會隨時釋放該檔案所使用的的區塊。再次宣告:務必確認使用的路徑是正確的。

一旦你刪除了備份檔案,就可以通過輸入exit退出服務器。

結論

整個網站備份過程完美完成!這不是一個完整的解決方案,但我想這是學習信息安全領域中備份技術的一個良好開端。

作者:Carrie_spinfo

來源:http://www.freebuf.com/articles/system/145614.html

《Linux雲計算及運維架構師高薪實戰班》2018年11月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網絡,部分內容會有所改動,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯繫我們刪除或授權事宜。

    – END –


    赞(0)

    分享創造快樂