restore 指令
用途
從使用 backup 指令建立的保存檔解壓縮檔案。
語法
如果要還原依檔名保存的檔案,請執行下列動作:
restore -x [ d M n Q v q e ] [ -b Number ] [ -f Device ] [ -s SeekBackup ] [ -E { force | ignore | warn }] [ File ...]
如果要依檔名列出保存的檔案,請執行下列動作:
restore -T | -t [a l n q v Q ] [ -b Number ] [ -f Device ] [ -s SeekBackup ]
如果要還原檔案系統所保存的檔案,請執行下列動作:
- restore -r [ B n q v y ] [ -b Number ] [ -f Device ] [ -s SeekBackup ]
- restore -R [ B n v y ] [ -b Number ] [ -f Device ] [ -s SeekBackup ]
- restore -i [ h m n q v y ] [ -b Number ] [ -f Device ] [ -s SeekBackup ]
- restore -x [ B h n m q v y ] [ -b Number ] [ -f Device ] [ -s SeekBackup ] [ File ...]
如果要還原從指定磁區號碼開始的檔案,請執行下列動作:
還原 -X 數字 [ -M日 n q v E Q ] [ -b 數字 ] [ -f 裝置 ] [ -s 數字 ] [ -E { 力 | 忽略 | 警告 } ] [ 檔案 ... ]
如果要列出檔案系統所保存的檔案,請執行下列動作:
還原 -t | -T [ B A 我 n h q v y ] [ -b 數字 ] [ -f 裝置 ] [ -s SeekBackup ] [ 檔案 ... ]
如果要還原依檔名保存的檔案屬性,請執行下列動作:
restore -Pstring [B d q v Q ] [ b Number] [ s SeekNumber ] [-f Device ] [ File ...]
如果要還原檔案系統所保存的檔案屬性,請執行下列動作:
restore -Pstring [ h q v] [ b Number] [ s SeekNumber ] [-f Device] [ File ...]
說明
您可以使用 -x 旗標並指定檔名,從檔名或檔案系統保存檔還原個別檔案。 必須指定檔名,因為它存在於保存檔中。 您可以使用 -i 旗標,以互動方式從檔案系統保存檔還原檔案。 保存檔上的檔案名稱可以使用 -T 旗標寫入標準輸出。
使用者必須具有檔案系統裝置的寫入權或還原權限,才能解壓縮保存檔的內容。
磁片裝置 /dev/rfd0
是 restore 指令的預設媒體。 若要從標準輸入還原,請使用 -f 旗標指定橫線 (-
)。 您也可以指定裝置範圍,例如 /dev/rmt0-2
。
- 如果您是從多磁區保存檔還原, restore 指令會讀取已裝載的磁區,提示您輸入下一個磁區,並等待您的回應。 插入下一個磁區之後,請按 Enter 鍵繼續還原檔案。
- 如果使用 backup 指令建立保存檔,並建立至裝置區塊大小設為 0 的磁帶機,則您可能需要明確瞭解建立磁帶以從磁帶還原時所使用的區塊大小。
- 單一磁帶上可以存在多個保存檔。 當您從磁帶還原多個保存檔時, restore 指令會預期輸入裝置是開啟時不重新拉緊、關閉時不倒轉的磁帶機。 除非指定 -B、 -s或 -X 旗標,否則請勿使用不倒帶磁帶機進行還原。
檔案系統保存檔
由於用來保存檔案的方法,檔案系統保存檔也稱為 i-node 保存檔。 檔案系統名稱隨 backup 指令一起指定,且會根據檔案系統內的結構和佈置來保存該檔案系統內的檔案。 restore 指令會還原檔案系統保存檔中的檔案,而不會對檔案系統的基礎結構有任何特殊瞭解。
restoresymtable
的檔案。 此檔案建立在現行目錄中。 該檔案是 restore 指令執行增量檔案系統還原作業的必要檔案。restoresymtable
檔。使用 -r 或 -R 旗標時,會忽略 File 參數。
檔名保存檔
檔名保存檔是透過使用 backup 指令指定要保存的檔名清單來建立。 還原作業會從檔名保存檔還原檔案,而不會對檔案系統的基礎結構有任何特殊瞭解。 還原作業容許在指定用於保存檔解壓縮的檔案時使用 meta 字元。 這可讓您根據型樣相符,從保存檔中解壓縮檔案。 型樣檔名必須以單一引號括住,型樣必須以括弧 (...) 括住。
關於稀疏檔案
稀疏檔案通常由資料庫應用程式建立。 每當建立資料庫檔案時,就會以 NULLs 來格式化它。 這些片段可能填入已配置或未配置的 NULLs。
旗標
旗標名稱 | 說明 |
---|---|
-a | 顯示 -a 選項會顯示保存檔中的檔案清單,以及與 -t 或 -T 旗標一起指定時的檔案許可權。 |
-B | 指定必須從標準輸入讀取保存檔。 通常,還原作業會檢查實際媒體,以判定備份格式。 使用 |
(管道) 時,無法進行此檢查。 因此,會假設保存檔是檔案系統格式,並假設裝置是標準輸入 (-f -)。 |
-b 數字 | 對於依名稱執行的備份,指定 512 位元組區塊的數目。 對於 i-node 所執行的備份,指定在單一輸出作業中要讀取的 1024 位元組區塊數。 當 restore 作業從磁帶機讀取時,依名稱備份的預設值為 100 ,依 i-node 備份的預設值為 32。 讀取大小是區塊數乘以區塊大小。 從磁帶機讀取 restore 作業的預設讀取大小是 51200 (100 × 512) (依名稱備份) , 32768 (32 × 1024) (依 i-node 備份)。 讀取大小必須是磁帶實體區塊大小的偶數倍。 如果讀取大小不是磁帶實體區塊大小的偶數倍數,且處於固定區塊模式 (非零) ,則 restore 指令會嘗試判定 Number的有效值。 如果成功, 還原 作業會將 數字 變更為新值,並將變更相關訊息寫入標準輸出,然後繼續。 如果找不到 數字的有效值, restore 作業會將錯誤訊息寫入標準錯誤,並以非零回覆碼結束。 數字 參數的較大值會導致從磁帶機進行較大的實體傳送。 當 restore 指令從磁片讀取時,一律會忽略 -b 旗標的值。 在此情況下,指令一律會讀取佔用完整追蹤的叢集。 |
-d | 指出如果 File 參數是目錄,則必須還原該目錄中的所有檔案。 只有在保存檔是檔名格式時,才能使用這個旗標。 |
-e | 還原非稀疏檔案,因為它們是以壓縮及解壓縮檔案的備份作業名稱格式保存。 在保存檔案之前必須知道檔案的稀疏或非稀疏,因為啟用此旗標會將稀疏檔案還原為非稀疏檔案。 只有在要還原的檔案是由超過 4 K NULLs 所組成的非備用檔案時,才必須啟用此旗標。 如果在還原作業期間指定 -e 旗標,則它會順利將所有正常檔案及非稀疏資料庫檔案還原為非稀疏資料庫檔案。 |
-E | 從指定的磁區號碼開始擷取,且需要下列其中一個引數。 如果您省略 -E 旗標,則 warn 是預設行為。
|
-f 裝置 | 指定輸入裝置。 若要從具名裝置接收輸入,請指定 Device 變數作為路徑名稱 (例如 您也可以指定保存裝置的範圍。 範圍規格必須採用下列格式:
其中 XXX 和 YYY 是整數,且 XXX 必須一律小於 YYY ; 例如:
指定範圍內的所有裝置都必須是相同類型。 例如,您可以使用一組 8 公釐、 2.3 GB 磁帶或一組 1.44 MB 磁片。 所有磁帶機必須設為相同的實體磁帶區塊大小。 如果 Device 變數指定範圍,則還原作業會自動從範圍中的一個裝置移至下一個裝置。 耗盡所有指定的裝置之後,還原作業會中止並要求在裝置範圍上裝載新磁區。 |
-h | 只還原實際目錄,不還原其中包含的檔案。 只有在保存檔是檔案系統格式時,才能使用這個旗標。 與 -r 或 -R 旗標一起使用時,會忽略此旗標。 |
-i | 可讓您以互動方式從檔案系統保存檔還原選取的檔案。 -i 旗標的次指令如下: add [File]: 指定將 File 參數新增至要擷取的檔案清單。 如果 檔案 是目錄,則該目錄及其包含的所有檔案都會新增至擷取清單 (除非使用 -h 旗標)。 如果未指定 檔案 ,則會將現行目錄新增至擷取清單。 cd 目錄: 將現行目錄變更為指定的目錄。 delete [File]: 指定要從要解壓縮的檔案清單中移除 File 參數。 如果 檔案 是目錄,則會從擷取清單中移除該目錄及其包含的所有檔案 (除非使用 -h 旗標)。 extract: 還原擷取清單上的所有目錄和檔案。 help: 顯示次指令的摘要。 ls [Directory]: 顯示 Directory 參數中包含的目錄及檔案。 目錄名稱會在名稱之後以斜線 (/) 顯示。 擷取清單中指定目錄內的檔案及目錄會在名稱之前顯示星號 ( pwd: 顯示現行目錄的完整路徑名稱。 quit: 使還原作業立即結束。 不會還原擷取清單上的任何檔案。 setmodes: 設定新增至擷取清單之所有目錄的擁有者、模式及時間。 verbose: 使 ls 次指令顯示 i-node 檔案和目錄數。 從保存檔擷取每一個檔案時,也會顯示該檔案的其他相關資訊。 |
-l | 顯示檔案的詳細清單,其中包括使用 -t 或 -T 旗標指定時的時間戳記、檔案許可權、檔案大小、擁有者及群組。 -l 選項會置換 -a 選項。 |
-M | 將已還原檔案的存取及修改時間設為還原時間。 只有在還原個別命名的檔案時,以及同時指定 -x 或 -X 旗標時,才能指定 -M 旗標。 未指定 -M 旗標時,還原作業會維護在備份媒體上出現的存取及修改時間。 |
-m | 將還原的檔案重新命名為保存檔上存在的檔案 inode 號碼。 如果正在還原一些檔案,且您想要以不同的檔名來還原這些檔案,則這會很有用。 因為任何已還原的保存成員都會重新命名為其 i-node 號碼,所以不會保留目錄階層及鏈結。 目錄和固定鏈結會還原成一般檔案。 當保存檔是檔案系統格式時,會使用 -m 旗標。 |
-n | 依預設,還原作業會還原保存檔中的任何「存取控制清單 (ACL)」、「列印顏色檔 (PCL)」或具名延伸屬性。 -n 旗標會導致還原作業跳過保存檔中的任何 ACL、PCL 或具名延伸屬性,而不還原它們。 |
-Pstring | 僅還原檔案屬性。 此旗標不會還原檔案內容。 如果指定的檔案不存在於目標目錄路徑中,則不會建立該檔案。 這個旗標會根據字串參數中指定的旗標,選擇性地還原檔案屬性。 String 參數可以是下列字元的組合:
附註: 在 restore 指令的現有旗標中,旗標 v、 h、 b、 s、 f、 B、 d、 及 q 與 P 旗標一起有效。 P 旗標可以與檔名及檔案系統保存檔一起使用。 如果 File 參數是符號鏈結,則會修改目標檔的 meta 資料,而不是符號鏈結的 meta 資料。
注意: 使用 -P 旗標會在超級使用者執行時改寫另一個使用者所擁有的檔案屬性。
|
-Q | 對於依名稱執行的備份,指定指令必須在遇到任何類型的錯誤時結束,而不是嘗試回復並繼續處理保存檔。 |
-q | 指定第一個磁區已備妥可供使用,且還原作業不得提示您 mount the volume ,然後按 Enter 鍵。 如果保存檔跨越多個磁區, restore 指令會提示您輸入後續的磁區。 |
-r | 還原檔案系統保存檔中的所有檔案。 -r 旗標只用來還原完整層次 0 備份,或在還原層次 0 備份之後還原增量備份。 還原作業會使用 restoresymtable 檔,在漸進式還原作業之間傳遞資訊。 在還原前次增量備份之後,必須移除此檔案。 當使用 -r 旗標時,會忽略 File 參數。 |
-r | 要求多磁區檔案系統保存檔的特定磁區。 -R 旗標容許重新啟動先前岔斷的還原作業。 當使用 -R 旗標時,會忽略 File 參數。 重新啟動之後, restore 指令行為與 -r 旗標相同。 |
-s SeekBackup | 指定要在多重備份磁帶保存檔上探查及還原的備份。 只有在將保存檔寫入磁帶機時, -s 旗標才適用。 若要適當地使用 -s 旗標,必須指定無倒帶關閉及無重新拉緊開啟磁帶機,例如 /dev/rmt0.1 或 /dev/rmt0.5 。 如果使用倒帶磁帶機指定 -s 旗標,則 restore 指令會顯示錯誤訊息,並以非零回覆碼結束。 如果使用不倒帶磁帶機,且未指定 -s 旗標,則會使用預設值 -s 1。 SeekBackup 參數的值必須在 1 到 100 (含) 的範圍內。 由於 -s 旗標的行為,因此必須使用不倒帶 (on-rewind-on-close)、不重新拉緊 (on-open) 磁帶機。 以 -s 指定的值是相對於磁帶讀寫頭的位置,而不是磁帶上保存檔的位置。 例如,若要從多重備份磁帶保存檔還原第一個、第二個及第四個備份, -s 旗標的個別值會是 -s 1、-s 1及 -s 2。 |
-T | 顯示備份保存檔的相關資訊。 如果保存檔是檔案系統格式,則會將保存檔上找到的檔案清單寫入標準輸出。 每一個檔案的名稱前面都有檔案的 i-node 號碼,因為它存在於保存檔中。 顯示的檔名是相對於所備份檔案系統的根目錄 (/ )。 如果未指定 檔案 參數,則會列出保存檔上的所有檔案。 如果使用 檔案 參數,則只會列出該檔案。 如果 檔案 參數參照目錄,則會列出該目錄中包含的所有檔案。 如果保存檔是檔名格式,則磁區標頭中包含的資訊會寫入標準錯誤。 此旗標可用來判斷保存檔是檔名或檔案系統格式。 |
-T | 顯示備份保存檔的相關資訊。 如果保存檔是檔名格式,則會將磁區標頭中包含的資訊寫入標準錯誤,並將保存檔上找到的檔案清單寫入標準輸出。 檔名保存檔會忽略 File 參數。 如果保存檔是檔案系統格式,則行為與 -t 旗標相同。 |
-v | 還原時顯示其他資訊。 如果保存檔是檔名格式,且指定了 -x 或 -T 旗標,則會顯示保存檔上存在的檔案大小 (以位元組為單位)。 已保存大小為 0 的目錄、區塊或字元裝置檔案。 列出的符號鏈結具有符號鏈結的大小。 固定鏈結會與檔案大小一起列出,這是保存它們的方式。 在讀取保存檔之後,會顯示這些大小的總計。 如果保存檔是檔案系統格式,則會識別目錄及非目錄保存檔成員。 |
-x | 還原 檔案 參數指定的個別具名檔案。 如果未指定 File 參數,則會還原所有保存成員。 如果 File 參數是目錄,且保存檔是檔名格式,則只會還原該目錄。 如果 檔案 參數是目錄,且保存檔是檔案系統格式,則會還原該目錄中包含的所有檔案。 File 參數所指定的檔名必須與還原 -T 旗標所顯示的檔名相同。 檔案會以保存時所用的相同名稱來還原。 如果使用相對路徑名稱 (./filename) 來保存檔名,則會相對於現行目錄來還原該檔案。 如果保存檔採用檔案系統格式,則會相對於現行目錄還原檔案。 restore 指令會自動建立任何所需的目錄。 使用此旗標來還原檔案系統備份時,系統會提示您輸入起始磁區號碼。 restore 指令容許在指定檔案進行保存檔擷取時使用 Shell 樣式型樣相符 meta 字元。 用於比對 meta 字元的規則與 Shell 路徑名稱 "globbing" 中使用的規則相同,即:
|
-X VolumeNumber | 從多重磁區、檔名備份的指定磁區開始還原。 在啟動 restore 指令之後,其行為與 -x 旗標相同。 -X 旗標僅適用於檔名保存檔。 |
-y | 當發現磁帶錯誤時繼續還原。 通常, restore 指令會詢問您是否要繼續。 在任一情況下,都會將讀取緩衝區中的所有資料取代為零。 只有在保存檔是檔案系統格式時, -y 旗標才適用。 |
? | 顯示用法訊息。 |
結束狀態
這個指令會傳回下列結束值:
回覆碼 | 說明 |
---|---|
0 | 順利完成。 |
> 0 | 發生錯誤。 |
範例
- 若要列出磁片裝置
/dev/rfd0
上檔名或檔案系統保存檔中的檔案名稱,請鍵入下列指令:restore -Tq
從
/dev/rfd0
預設還原裝置讀取保存檔。 即會顯示保存檔中包含的所有檔案及目錄的名稱。 若為檔案系統保存檔,檔名前面會有檔案存在於保存檔上的 i-node 號碼。 -q 旗標會告知 restore 指令第一個磁區可供讀取。 因此,系統不會提示您裝載第一個磁區。 - 若要還原特定檔案,請鍵入下列指令:
restore -xvqf myhome.bkup system.data
此指令會將檔案
system.data
從保存檔myhome.bkup
解壓縮至現行目錄。 此範例中的保存檔位於現行目錄中。 當使用 -T 旗標時,檔案和目錄名稱必須在顯示時指定。 -v 旗標會在擷取期間顯示其他資訊。 這個範例同時適用於檔名和檔案系統保存檔。 - 若要將特定檔案從磁帶還原至虛擬媒體儲存庫,請鍵入下列指令:
restore -xvqf /dev/rmt0 /var/vio/VMLibrary/media_file
- 若要從檔名保存檔還原特定目錄及該目錄的內容,請鍵入下列指令:
restore -xdvqf /dev/rmt0 /home/mike/tools
-x 旗標會依檔案名稱來擷取檔案。 -d 旗標告訴 restore 指令會解壓縮
/home/mike/tools
目錄中的所有檔案和子目錄。 當使用 -T 旗標時,檔案和目錄名稱必須在顯示時指定。 如果目錄不存在,則會建立它們。 - 若要從檔案系統保存檔還原特定目錄及該目錄的內容,請鍵入下列指令:
此指令會依檔名擷取檔案。 當使用 -T 旗標時,檔案和目錄名稱必須在顯示時指定。 如果目錄不存在,則會建立它們。restore -xvqf /dev/rmt0 /home/mike/tools
- 若要還原整個檔案系統保存檔,請鍵入下列指令:
此指令會將整個保存在磁帶機restore -rvqf /dev/rmt0
/dev/rmt0
現行目錄上的檔案系統還原。 此範例假設您位於要還原之檔案系統的根目錄中。 如果保存檔是一組增量檔案系統保存檔的一部分,則必須以遞增備份層次順序來還原保存檔,從層次 0 開始 (例如, 0、1、2)。 - 若要從單一磁區多重備份磁帶還原第五個和第九個備份,請鍵入下列指令:
第一個指令會在restore -xvqs 5 -f/dev/rmt0.1 restore -xvqs 4 -f/dev/rmt0.1
/dev/rmt0.1
指定的多重備份磁帶上解壓縮第五個保存檔中的所有檔案。.1
指定元指定磁帶機在開啟時不會重新拉緊,且在關閉時不會倒帶。 由於 -s 旗標的行為,因此必須使用不倒帶 (on-rewind-on-close)、不重新拉緊 (on-open) 磁帶機。 第二個指令會從第四個保存檔擷取所有檔案 (相對於磁帶上磁帶頭的現行位置)。 在還原第五個保存檔之後,磁帶讀寫頭位於讀取保存檔的位置。 由於您想要在磁帶上解壓縮第九個保存檔,因此您必須使用 -s 旗標來指定值 4。 這是因為 -s 旗標是相對於您在磁帶上的位置,而不是保存檔在磁帶上的位置。 第九個保存檔是磁帶上現行位置的第四個保存檔。 - 若要還原第四個備份 (從 10 磁帶多重備份保存檔的第六個磁帶開始) ,請將第六個磁帶放入磁帶機,並鍵入下列指令:
假設第四個備份是第六個磁帶上的第二個備份,則指定 -s 2 會將磁帶頭前進至此磁帶上第二個備份的開始。 然後, restore 指令會從保存檔還原指定的檔案。 如果備份繼續到後續的磁區,且尚未還原檔案, restore 指令會指示您插入下一個磁區,直到備份結束為止。 -f 旗標指定不倒帶、不重新拉緊磁帶機名稱。restore -xcs 2 -f /dev/rmt0.1 /home/mike/manual/chap3
附註: -s 旗標指定相對於磁帶機中所插入磁帶的備份號碼,而不是整體 10 磁帶保存檔的備份號碼。 - 若要改進串流磁帶機的效能,請將 dd 指令傳送至還原指令,並鍵入下列指令:
dd 指令會使用 64 個 512 位元組區塊的區塊大小,從磁帶讀取保存檔,並將保存檔寫入標準輸出。 restore 指令會使用 64 個 512 位元組區塊的區塊大小來讀取標準輸入。 dd 指令用來從磁帶讀取保存檔的區塊大小值必須是使用 backup 指令來建立磁帶之區塊大小的偶數倍。 例如,必須使用下列 backup 指令來建立此範例解壓縮的保存檔:dd if=/dev/rmt0 bs=64b | restore -xf- -b64
此範例僅適用於檔名格式的保存檔。 如果保存檔是檔案系統格式, restore 指令必須包含 -B 旗標。find /home -print | backup -ivqf/dev/rmt0 -b64
- 若要在「9348 磁帶裝置型號 12」上增進 restore 指令的效能,您可以鍵入下列指令來變更區塊大小:
chdev -l DeviceName -a BlockSize=32k
- 若要還原非稀疏資料庫檔案,請鍵入下列指令:
restore -xef /dev/rmt0
- 若要還原已保存為稀疏的檔案,請鍵入下列指令:
restore -xf /dev/rmt0
- 若只要從保存檔還原檔案的許可權,請鍵入下列指令:
restore -Pa -vf /dev/rmt0
- 若只要從保存檔還原檔案的 ACL 屬性,請鍵入下列指令:
restore -Pc -vf /dev/rmt0
- 若要檢視目錄及檔案許可權,請鍵入下列指令:
restore -Ta -vf /dev/rmt0
- 若要檢視檔名保存檔的目錄以及時間戳記和檔案許可權,請鍵入下列指令:
restore -Tl -vf /dev/rmt0
- 若要檢視檔案系統保存檔的目錄以及時間戳記和檔案許可權,請鍵入下列指令:
restore -tl -vf /dev/rmt0