經常使用 Windows 系統的小夥伴應該聽說過 ghost 軟體,它可以實現將整個系統完全複製到另一個硬碟上。當系統出現問題,通過備份硬碟,在短時間內即可將系統中的所有資料完全恢復。
ghost 是一種硬碟映象技術,可以將系統磁碟中的所有資料映象到另一個備份硬碟上。
雖然在 Linux 系統中也有類似 ghost 的工具(dd 命令就可以實現整盤備份),不過這種備份花費的時間比較長,占用的硬碟空間較大,不太適合經常進行。
事實上,全盤備份 Linux 系統並不是一個好的策略,我們僅需要備份系統中的所有重要檔案資料即可,不但備份過程迅速,恢復也快。那麼,哪些資料是 Linux 伺服器中較為重要的、需要定時備份的資料呢?
我個人認為,需要備份的檔案大致可分為 2 類,分別是系統級組態檔和使用者級組態檔。
系統級組態檔
系統組態檔主要指的是系統全域性的一些設定資訊,比如說:
-
/root/ 目錄:/root/ 目錄是管理員的家目錄,很多管理員會習慣在這個目錄中儲存一些相關資料,那麼,當進行資料備份時,需要備份此目錄。
-
/home/ 目錄:/home/ 目錄是普通使用者的家目錄。如果是生產伺服器,那麼這個目錄中也會儲存大量的重要資料,應該備份。
-
/var/spool/mail/ 目錄:在預設情況下,所有的使用者未讀的郵件會儲存在 /var/spool/mail/ 目錄下和使用者名稱相同的郵箱檔案中,已讀的郵件會儲存在使用者家目錄下的 mbox 檔案中(mail 命令預設如此儲存,不過如果使用了 hold 命令,那麼不管郵件是否已讀,都儲存在 /var/spool/mail/ 目錄中。可以使用 mbox 命令恢復已讀郵件儲存在“~/mbox”檔案中)。一般情況下,使用者的郵件也是需要備份的重要資料。
-
/etc/ 目錄:系統重要的組態檔儲存目錄,當然需要備份。
-
其他目錄:根據系統的具體情況,備份你認為重要的目錄。比如,我們的系統中有重要的紀錄檔,或者安裝了 RPM 包的 MySQL 伺服器(RPM 包安裝的 mysql 服務,資料庫儲存在 /var/lib/mysql/ 目錄中),那麼 /var/ 目錄就需要備份;如果我們的伺服器中安裝了多個作業系統,或編譯過新的核心,那麼 /boot/ 目錄就需要備份。
以上這些目錄對系統的執行至關重要,並且針對不同的系統應用,其設定也不盡相同。如果丟失的這些檔案,即使新的作業系統能很快安裝完畢,對系統也要重新設定,花費的時間會更長。
使用者級組態檔
使用者級組態檔,也就是使用者業務應用與系統相關的組態檔,這些檔案是執行業務應用必不可少的,一旦丟失,應用將無法啟動。
我們的 Linux 伺服器中會安裝各種各樣的應用程式,每種應用程式到底應該備份什麼資料也不盡相同,要具體情況具體對待。這裡拿最常見的 apache 服務和 mysql 服務來舉例。
apache 服務需要備份如下內容:
-
組態檔:RPM 包安裝的 apache 需要備份 /etc/httpd/conf/httpd.conf;原始碼包安裝的 apache 則需要備份 /usr/local/apache2/conf/httpd.conf。
-
網頁主目錄:RPM 包安裝的 apache 需要備份 /var/www/html/ 目錄中所有的資料;原始碼包安裝的 apache 需要備份 /usr/local/apache2/htdocs/ 目錄中所有的資料。
-
紀錄檔檔案:RPM 包安裝的 apache 需要備份 /var/log/httpd/ 目錄中所有的紀錄檔;原始碼包安裝的 apache 需要備份 /usr/local/apache2/logs/ 目錄中所有的紀錄檔。
其實,對原始碼包安裝的 apache 來講,只要備份 /usr/local/apache2/ 目錄中所有的資料即可,因為原始碼包安裝的服務的所有資料都會儲存到指定目錄中。但如果是 RPM 包安裝的服務,就需要單獨記憶和指定了。
mysql 服務需要備份如下內容:
-
對於原始碼包安裝的 mysql 服務,資料庫預設安裝到 /usr/local/mysql/data/ 目錄中,只需備份此目錄即可。
-
對於RPM包安裝的 mysql 服務,資料庫預設安裝到 /var/lib/mysql/ 目錄中,只需備份此目錄即可。
如果是原始碼包安裝的服務,則可以直接備份 /usr/local/ 目錄,因為一般原始碼包服務都會安裝到 /usr/local/ 目錄中。如果是 RPM 包安裝的服務,則需要具體服務具體對待,備份正確的資料。
以上重要的檔案和目錄,是必須要備份的,那麼,不需要備份的目錄有哪些呢?比如 /dev 目錄、/proc 目錄、/mnt 目錄以及 /tmp 目錄等,這些目錄是不需要備份的,因為這些目錄中,要麼是記憶體資料,要麼是臨時檔案,沒有重要的資料。