標題: [資源分享] [分享] Linux 備份與恢復速成指南電子商務架構師, IBM [打印本頁] 作者: 祐祐 時間: 2010-8-11 11:28 標題: [分享] Linux 備份與恢復速成指南電子商務架構師, IBM
Linux 備份與恢復速成指南
級別: 初級
Chris Walden
電子商務架構師, IBM Developer Relations
2004 年 1 月
IBM 電子商務架構師 Chris Walden 將透過他在 developerWorks 上發表的九篇系列文章來指導您如何在 Linux 環境中運用您的 Windows 操作技巧。本部分將考察 Linux 系統上的內容,同時在考慮到恢復和安全的情況下,計畫並實現常規備份。
Linux 是一個穩定而可靠的環境。但是任何計算系統都有無法預料的事件,比如硬體故障。擁有關鍵配置訊息的可靠備份是任何負責任的管理計畫的組成部分。在 Linux 中可以透過各種各樣的方法來執行備份。所涉及的技術從非常簡單的腳本驅動的方法,到精心設計的商業化軟體。備份可以保存到遠程網路設備、卡帶驅動器和其他可移動媒體上。備份可以是基于文件的或基于驅動器映像的。可用的選項很多,您可以混合搭配這些技術,為您的環境設計理想的備份計畫。
確定策略
可以採用許多不同的方法來備份系統。欲了解關於這方面的一些訊息,您可以閱讀本文結尾處 參考資料 中列出的“Introduction to Backing Up and Restoring Data”一文。
所備份的內容很大程度上取決于您備份它們的理由。您是否試圖從嚴重的故障(比如硬碟驅動器問題)中恢復?您是否想歸檔以便能在需要時恢復舊的文件?您計畫從一個冷系統和還原著手,還是從一個預加載的備用系統著手?
確定要備份的內容
在備份和還原系統時,Linux 基于文件的性質成了一個極大的優點。在 Windows 系統中,註冊表與系統是非常相關的。配置和軟體安裝不僅僅是將文件放到系統上。因此,還原系統就需要有能夠處理 Windows 這種特性的軟體。在 Linux 中,情況就不一樣了。配置文件是基于文本的,並且除了直接處理硬體時以外,它們在很大程度上是與系統無關的。硬體驅動程式的現代方法是,使它們以動態加載的模塊的形式可用,這樣內核就變得更加與系統無關。不同于讓備份必須處理作業系統如何安裝到系統和硬體上的複雜細節,Linux 備份處理的是文件的打包和解包。
• 一般情況下,以下這些目錄是需要備份的︰
• /etc
包含所有核心配置文件。這其中包括網路配置、系統名稱、防火牆規則、用戶、組,以及其他全局系統項。
• /var
包含系統守護進程(服務)所使用的訊息,包括 DNS 配置、DHCP 租期、郵件緩沖文件、HTTP 伺服器文件、db2 實例配置,等等。
• /home
包含所有用戶的默認用戶主目錄。這包括他們的個人設置、已下載的文件和用戶不希望失去的其他訊息。
• /root
是根(root)用戶的主目錄。
/opt
是安裝許多非系統文件的地方。IBM 軟體就安裝在這裡。OpenOffice、JDK 和其他軟體在默認情況下也安裝在這裡。
• 有些目錄是應該考慮 不備份的。
• /proc
應該永遠不要備份這個目錄。它不是一個真實的文件系統,而是營運內核和環境的虛擬化視圖。它包括諸如 /proc/kcore 這樣的文件,這個文件是整個營運內存的虛擬視圖。備份這些文件只是在浪費資源。
/dev
包含硬體設備的文件表示。如果計畫還原到一個空白的系統,那就可以備份 /dev。然而,如果計畫還原到一個已安裝的 Linux 系統,那么備份 /dev 是沒有必要的。
其他目錄包含系統文件和已安裝的包。在伺服器環境中,這其中的許多訊息都不是自定義的。大多數自定義都發生在 /etc 和/home 目錄中。不過出于完整性的考慮,您可能希望備份它們。
在生產環境中,我希望確保數據不會丟失,因而我會備份除 /proc 目錄之外的整個系統。如果最擔心用戶和配置,我會僅備份 /etc、/var、/home 和 /root 目錄。
備份工具
正如前面提到過的, Linux 備份在很大程度上就是打包和解包文件。這允許使用現有的系統實用工具和腳本來執行備份,而不必購買商業化的套裝軟件。在許多情況下,這類備份將是足夠的,並且為管理員提供了極大的控制能力。備份腳本可以使用 cron 命令來自動化,這個命令控制 Linux 中預定的事件。
tar
tar 是一個已移植到 Linux 中的經典 UNIX 命令。 tar 是 tape archive(卡帶歸檔)的縮寫,最初設計用于將文件打包到卡帶上。如果您下載過 Linux 源代碼,或許已經碰到過 tar 文件。這是一個基于文件的命令,它本質上是連續地、首尾相連地堆放文件。
使用 tar 可以打包整個目錄樹,這使得它特別適合用于備份。歸檔文件可以全部還原,或從中展開單獨的文件和目錄。備份可以保存到基于文件的設備或卡帶設備上。文件可以在還原時重定向,以便將它們重新放到一個與最初保存它們的目錄(或系統)不同的目錄(或系統)。 tar 是與文件系統無關的。它可以使用在 ext2、ext3、 jfs、Reiser 和其他文件系統上。
使用 tar 非常類似于使用諸如 PKZip 這樣的文件實用工具。只需將它指向一個目的(可以是文件或設備),然後指定您想要打包的文件。您可以透過標準的壓縮類型來動態壓縮歸檔文件,或指定一個自己選擇的外部壓縮程式。要透過 bzip2 壓縮或解壓縮文件,可使用 tar -z 命令。
要使用 tar 來把除 /proc 目錄之外的整個文件系統備份到 SCSI 卡帶設備︰
tar -cpf /dev/st0 / --exclude=/proc
在上面的例子中, -c 開關表示歸檔文件正在被創建。 -p 開關表示我們希望保留文件許可權限,這對良好的備份來說是很關鍵的。 -f 開關指向該歸檔文件的文件名。在本例中,我們使用的是原始卡帶設備 /dev/st0。/ 表示我們想要備份的內容。既然我們想要備份整個系統,因此把這個開關指定為根(root)。當把 tar 指向一個目錄(以 / 結尾)時,它會自動遞歸。最後,我們排除了 /proc 目錄,因為它沒有包含需要保存的任何內容。如果單盒卡帶容納不下這個備份,我們需要添加 -M 開關(本例中沒有顯示)以進行多卷備份。
以防萬一
不要忘了 Linux 是區分大小寫的。例如, tar 命令應該總是以小寫的形式執行。命令行開關可以是大寫、小寫或大小寫的混合。例如, -t 和 -T 執行不同的功能。文件或目錄名稱可以混合使用大小寫,而且就像命令和命令行開關一樣,是區分大小寫的。
要还原一个或多个文件,可以使用带提取开关( -x )的 tar 命令:
前瞻和回顧
擁有良好備份的第一步是擁有計畫。首先知道您需要保存的數據以及需要什麼恢復策略,然後使用最適合該策略的工具。
Linux 附帶了一些現成的(out of the box)有用備份工具。其中兩個最常用的是 tar 和 dump/restore 。兩者都能執行完全系統備份。使用創造性的腳本,您能夠設計一個自定義的方案來本地和遠程地備份系統。
然而,編寫自己的備份腳本可能是一項繁重的任務,對于複雜的企業來說更是如此。諸如 Tivoli Storage Manager 這樣的商業化軟體降低了學習難度,並允許您立即控制自己的備份,但是您可能必須調整自己的策略來適應這些工具的功能。
• 參考資料
• 您可以參閱本文在 developerWorks 全球站點上的 英文原文.
• 閱讀 Windows 到 Linux 之旅系列文章的其他部分( developerWorks,2003 年 11 月)。
• Linux Administrator's Security Guide是一個安全指南,其中有一個非常優秀的小節討論了 Linux 備份和恢復實踐。
• Introduction to Backing Up and Restoring Data是一篇與作業系統或系統體系架構無關的概述。作者在本文中探討了備份技術以及如何為備份製定計畫。
• Linux Administration Made Easy是一篇較舊的參考資料,但是仍然有用,因為 Linux 的一般過程和技術仍然保持一致。
• The Linux System Administrator's Guide為初學人介紹了 Linux 系統的系統管理。
• Securing and Optimizing Linux - A Hands on Guide (Red Hat Edition) 一書的 第 7 章“備份和還原”是另一份不錯的指南,其中包括一個腳本,用于執行基于 tar 的增量備份。
• The TAO of Backup是對備份哲學的有趣展示,以哲學的形式呈現出來。雖然它和一款商業化的產品相關,但是這段訊息寫得非常好。
• IBM developerWorks教程“ Linux 機器備份”指導您完成創建和貫徹備份策略的過程。
• 在 CD 上存儲數據和其他內容很容易︰在 IBM developerWorks文章“ 在 Linux 上燒錄 CD”中學習如何做到這點。
• 如果正在從 Windows 環境轉換到 Linux 環境,您還需要閱讀 Linux 用戶技術 FAQ。
• The Tivoli Storage Manager 被評為 LinuxWorld 2003 最佳存儲解決方案。從 IBM 站點的 Linux 專區了解更多關於 Tivoli Storage Manager for Linux的訊息。
• Tivoli 產品頁 包含關於 Tivoli 的更多訊息,包括安全和隱私特性。
• “Linux 文檔計畫”中 Introduction to Linux的第 3 章 討論了文件權限和安全。
在 developerWorksLinux 專區可以找到更多 為 Linux 開發者準備的參考資料。
關於作者
Chris Walden 是德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為 dragonslayers )的一名電子商務架構師,該公司為 IBM 商業伙伴提供教育、實現和咨詢。他致力于 Linux 相關工作,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構師的職責之外,他還精通 Linux 基礎設施伺服器的各個領域,包括混合平台用戶環境下的文件、打印以及其他應用服務等。Chris 有 10 年的計算機行業經驗,從現場支持到 Web 應用開發和顧問,各個領域他都曾涉足。您可以透過電子郵件 cmwalden@us.ibm.com 與 Chris 聯繫。