關于系統上的安全,備份和恢復實用工具,這些都是我們最常用到的
我看這個覺得不錯,給大家拿出來看看,要是有不好的地方請大家更正
?。。。。?!
本文回顧了一些在 Solaris 操作系統中可用的常見備份和恢復工具。這里所提供的例子可以使您立即開始使用一個實用工具,而不必理解其所有功能。掌握這些工具的一些知識對于普通的系統管理來說是至關重要的。這里所示的例子已在 Solaris 5.8 操作系統上測試,他們也可在其他版本的操作系統上工作。
在本文中,我僅僅列出了這些命令中每一個的基本使用方法。如果您需要更多的信息,我建議您參考對每個實用工具進行更加詳細探究的 man 頁面。參見 Sun 產品信息站點(docs.sun.com)上的 Solaris 操作系統的 man 頁面。
更明確地說,本文介紹了以下備份和恢復實用工具:
tar
dd
cpio
pax
tar --創建磁帶和文件存檔,恢復文件和目錄
tar 命令在很多 UNIX 平臺上都可找到。它是一個用于將文件存檔到磁帶上的快速易用的工具。tar 也可以用于將多個文件存檔為一個文件(也就是 tar 文件),使之可以移植到其他系統上使用。例如,如果需要,可以將整個用戶主目錄或安裝目錄復制到單個 tar 文件中,并在必要時將其移動到運行 HP-UX 的服務器上。
tar 命令有很多可用的選項,但是我將只討論用于創建、提取或恢復的三個選項,并列出 tar 文件內容的選項。
tar 命令選項
-c: 創建 tar 文件
-t: 列出 tar 的內容
-x: 提取或恢復 tar 文件內容
-v: Verbose (顯示 tar 所采取的動作)
tar 命令的基本語法如下:
tar
注意: 有時您將在一些 tar 命令例子中看到在選項前使用了破折號,這對于 tar 的正確運行不是必需的。
創建新的 tar 文件:
% tar
cvf filename.tar filelist
在這里,filename.tar 是 tar 文件的名字。filelist 是想要備份的文件列表??梢允褂猛ㄅ浞付斜?。
列出 tar 文件的內容:
% tar tvf filename.tar filelist
在這里, filename.tar 可以被一個磁帶設備文件所取代。例如:
% tar cvf filename.tar /dev/rmt/0mn
提取 tar 文件內容到當前位置:
% tar xvf filename.tar
dd -- 轉換和復制文件
dd 命令通常用于將整個文件系統復制到另一個文件系統,或者將硬盤驅動器的內容復制到另一塊硬盤。dd 還可以用于將文件系統復制到磁帶,反之亦可。dd 是一個相對較快的復制工具:它在傳輸數據時為數據創建一個精準的副本(字節對字節)。dd 可使用幾個選項來指定緩沖區大小、塊大小和數據轉換。其基本的語法是:
dd
下面的例子將整個 c0t1d0s2 的內容復制到第二塊磁盤(c0t4d0s2)上,使用的塊大小是 128。如果您有可用的剩余磁盤空間并且希望有準備好的備份磁盤以在災難發生時換出,這會工作得極佳。在這個例子中指定了 slice 2,因為它在 Solaris 操作系統中代表整個磁盤。
% dd if=/dev/rdsk/c0t1d0s2 of=/dev/rdsk/c0t4d0s2 bs=128
要將一臺磁帶設備上的內容復制到另一臺上,使用下面例子所示的命令。(注意:必須有兩臺可用驅動器。)
% dd if=/dev/rmt/#1drive of=/dev/rmt/#2drive
有關 dd 的 man 頁面給出了很多其他可用的選項。我建議您查看 dd 的 man 頁面并且閱讀 Notes 小節。在那里,您將發現 dd 的一些限制,以及在從磁盤設備復制數據時使用裸字符設備的一個提示。
cpio --拷入和拷出文件存檔
cpio 代表“拷入,拷出”,用于從一個位置復制數據到另一個位置。使用 cpio 與使用其他 UNIX 實用工具相比更具有優勢,包括:
cpio 可以備份和恢復單獨的文件而不只是所有文件系統。
cpio 在文件上創建的文件頭信息較小,導致備份量較少。
tar 被限制在單臺磁帶設備上,cpio 則不同,它可以跨越多個磁帶。
cpio 運行在三種模式中: copy-out ( cpio -o)、 copy-in ( cpio -i)和 pass 模式 ( cpio -p),最后一種模式用于從磁盤上(而不是磁帶)的一個位置復制文件到另一個位置。下節列出了幾個常用的選項。
cpio 命令選項
除非另行指出,否則這些選項適用于 copy-out 和 copy-in 模式。
-c: 以 ASCII 格式寫入頭信息, 為了便于移植。
-d: 創建所需的目錄。
-v: Verbose (處理時報告文件名)。
-V: 與前面相同, 除了為每個復制的文件顯示一個 “.”。
-u: 用于無條件復制;舊文件將不會替換較新的文件。
-m: 保留以前的文件修改時間。該選項在復制目錄時不起作用。
要將一個目錄及其子目錄復制到磁帶上,使用下面的例子:
% ls -R | cpio -oVc >; /dev/rmt/0
上面的例子將把當前所在的目錄以及其中的所有子目錄復制到位于 /dev/rmt/0 的磁帶設備。-o 指定處于 copy-out 模式。-V 選項代表 verbose 并將顯示.作為進度指示符。-c 選項創建一個 ASCII 頭文件。
要將內容從磁帶復制回目錄,使用下面的例子:
% cpio -icvD < /dev/rmt/0
在上面的例子中,我們的命令將使用多個選項恢復磁帶上的數據內容。-i 選項使工作處于 copy-in 模式。-d 選項在將數據復制回來的時候創建所有所需的目錄。
利用 cpio 備份文件(Copy-Out 模式)
利用 cpio 有多種方法來備份文件,我在這里將介紹其中的兩種。
% cpio -ov list >; /dev/rmt/0
這個命令從文件“list”讀取內容并將其復制到磁帶設備。
% cpio -o /dev/rmt/0
這個命令允許您指定要備份的文件。輸入文件名后,按 Ctrl+D 鍵執行該命令。下面是一個例子:
% cpio -o >; /dev/rmt/0
filename.txt
file1name.txt
利用 cpio 恢復文件(Copy-In 模式)
利用 cpio 的恢復過程與備份文件的過程類似。只是不使用 -o 指定 copy-out 模式,我們使用 -i 模式將數據從磁帶復制回來。
% cpio -icvum < /dev/rmt/0
這個例子利用了與先前使用的類似選項,還有 -m 選項,它將保留文件的修改時間。
使用下面的例子查看磁帶存檔上的內容列表:
% cpio -ict < /dev/rmt/0
Pass 模式
Pass 模式可用于在磁盤設備上復制目錄。它在磁帶上將無法工作。當要復制文件和目錄時,,cpio 要優于 cp,因為它保留了文件的所有權和修改時間。
下面的例子將所有文件和目錄復制到一個稱為 bkup 的目錄中:
% ls * | cpio -pdumv bkup
pax -- 可移植存檔互換(提取、寫入和列出存檔文件)
pax 實用工具可以在很多與 POSIX 兼容的 UNIX 系統上找到。Solaris 操作系統從版本 2.5 開始就包含它了。pax 具有讀寫 tar 和 cpio 存檔的能力。根據您選擇如何使用 pax,它將運行于 4 種模式之一:讀、寫、列表和復制。要設置模式,您可以使用 -r、-w 、這兩者的組合或者根本不用選項。
pax 模式選項
選項 模式 描述
-r 讀 單個 -r 選項只是讀模式,這允許您從磁盤或磁帶讀文件
無 列表 如果 -r 或 -w 選項都沒有, pax 將被置于列表模式。它將從磁盤、磁帶或標準輸入設備讀文件并且顯示文件和目錄層次結構
-w 寫 單個 -w 選項讓 pax 處于寫模式。 它將依照 -x 選項指定的格式將當前目錄和其中的所有子目錄復制到獨立的輸出設備。(參見下面的例子)。如果沒有指定文件,可以從標準的輸入設備上讀入一個列表,一次一個文件
-rw 復制 同時指定 -r 和 -w 選項,所選擇的文件被復制到目的目錄
pax 命令選項
選項 描述
-a 將文件附加到先前寫入的存檔的末尾
-b 塊大小。 塊大小最低為 512 字節, 或者以 512 為增量的更大塊,最大 32256 字節
-c 匹配所有文件或存檔成員,除了那些用 Pattern 和文件操作數指定的
-f
-i 交互地重命名文件或存檔成員。 用于通過標準輸入為可選擇性的寫或復制提供文件名
-p
e 保留一切:用戶 ID、組ID、文件模式位、文件訪問時間和修改時間。
m 不保留文件修改時間
o 保留用戶 ID 和組 ID
P 保留文件模式位
v Verbose 模式
-x 指定輸出存檔格式。默認格式是 ustar。 pax 可以支持 cpio、 tar、 bcpio、 ustar、 sv4crc 和 sv4cpio
文章出自CU的 pengtao_hlp