Linux資料備份及伺服器重要資料類別分析

2020-07-16 10:04:36
有人說,既然資料備份非常重要,那我把重要資料在硬碟中儲存一份,在行動硬碟中也儲存一份,再燒錄一張光碟,這樣資料應該非常安全了吧?

對個人使用者來講,這樣儲存資料已經足夠了;但是對企業使用者來講,還是有安全隱患的,因為這些資料還是放在同一個地方的。還記得美國的“9·11”事件嗎?像美國紐約世貿中心那樣的龐然大物也轟然倒塌。當然,相比這樣的災難來講,資料的損失已經是微不足道的了,不過這仍然說明異地備份的重要性。所以,我們在備份資料的時候,不僅要把資料儲存在多個儲存媒介中,還要考慮把重要資料異地儲存。

Linux伺服器中的哪些資料需要備份

既然備份這麼重要,那麼對 Linux 伺服器來講,我們到底需要備份哪些資料呢?當然最理想的就是把整塊硬碟中的資料都備份,甚至連分割區和檔案系統都備份,這樣如果硬碟損壞,那麼我們可以直接把備份硬碟中的資料匯入損壞的硬碟,甚至可以直接用備份硬碟代替損壞的硬碟。

從資料恢復角度來說,這樣的整盤備份是最方便的(dd 命令就可以實現整盤備份,類似於 Windows 中的 GHOST 軟體)。不過這種備份的備份時間比較長,占用的硬碟空間較大,不太適合經常進行。我們最常進行的備份還是把系統中的重要資料進行備份。那麼,哪些資料是 Linux 伺服器中較為重要的、需要定時備份的資料呢?

1) Linux伺服器中的重要資料

Linux伺服器中的哪些資料需要備份,可能不同的管理員有不同的理解,不過有這樣一些資料是大家公認的需要備份的資料。
  • /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/ 目錄就需要備份。

2) 安裝服務的資料

我們的 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 包安裝的服務,則需要具體服務具體對待,備份正確的資料。