hp-ux tar命令測試

ljm0211發表於2012-06-20
tar命令在備份資料時如果使用絕對路徑備份只能恢復到原備份絕對路徑的位置。如果使用相對路徑進行備份可以恢復到任何想要恢復的目錄下,不過恢復到該目錄下的內容是在該目錄下生成整個備份時的全部相對路徑。
例如:
tar檔案中的內容如下:
zjapp01#[/usr/local/appbackup]tar tvf tmp.tar
rwxr-xr-x   0/3      0 Apr 23 15:22 2009 ./tmp/
rw-r--r--   0/3 1409805 Apr 23 15:22 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1063444480 Apr 23 15:23 2009 ./tmp/cwyy-ufida-200904230010.tar
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 ./tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:50 2009 ./tmp/
rw-r--r--   0/3      0 Apr 23 15:50 2009 ./tmp/cwyy-ufida-200904230010.tar.log


zjapp01#[/usr/local/appbackup]cd tmp
zjapp01#[/usr/local/appbackup/tmp]ls

當前目錄下為空;

zjapp01#[/usr/local/appbackup/tmp]tar xvf ../tmp.tar tmp/cwyy-ufida-200904230010.tar.log
x tmp/cwyy-ufida-200904230010.tar.log, 1409805 bytes, 2754 tape blocks

解壓tar檔案中內容;

zjapp01#[/usr/local/appbackup/tmp]ls
tmp
zjapp01#[/usr/local/appbackup/tmp]ll tmp
total 2768
-rw-r--r--   1 root       sys        1409805 Apr 23 15:38 cwyy-ufida-200904230010.tar.log

在當前目錄下生成了相對路徑的內容。

tar一個絕對路徑的檔案:
zjapp01#[/usr/local/appbackup]tar rvf tmp.tar /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log
a /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log 2754 blocks
zjapp01#[/usr/local/appbackup]ls
sh        tarfiles tmp       tmp.old   tmp.tar
zjapp01#[/usr/local/appbackup]tar tvf tmp.tar
rwxr-xr-x   0/3      0 Apr 23 15:22 2009 ./tmp/
rw-r--r--   0/3 1409805 Apr 23 15:22 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1063444480 Apr 23 15:23 2009 ./tmp/cwyy-ufida-200904230010.tar
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 ./tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:50 2009 ./tmp/
rw-r--r--   0/3      0 Apr 23 15:50 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1409805 Apr 23 16:02 2009 /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log


釋放絕對路徑的檔案,可以看到只能釋放到絕對路徑的位置,而不會在當前目錄下建立目錄;
zjapp01#[/usr/local/appbackup]ls
sh        tarfiles tmp       tmp.old   tmp.tar
zjapp01#[/usr/local/appbackup]tar xvf tmp.tar /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log
x /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log, 1409805 bytes, 2754 tape blocks
zjapp01#[/usr/local/appbackup]ls
sh        tarfiles tmp       tmp.old   tmp.tar
zjapp01#[/usr/local/appbackup]ll tmp
total 2768
-rw-r--r--   1 root       sys        1409805 Apr 23 16:02 cwyy-ufida-200904230010.tar.log


釋放tar中的相同備份名稱的檔案時,釋放的順序是按照時間從最早到最晚的次序釋放,就是說最晚的檔案會覆蓋之前的檔案。
例如:
有3個同路徑同名的備份檔案:./tmp/cwyy-ufida-200904230010.tar.log
zjapp01#[/usr/local/appbackup]tar tvf tmp.tar
rwxr-xr-x   0/3      0 Apr 23 15:22 2009 ./tmp/
rw-r--r--   0/3 1409805 Apr 23 15:22 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1063444480 Apr 23 15:23 2009 ./tmp/cwyy-ufida-200904230010.tar
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 ./tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:50 2009 ./tmp/
rw-r--r--   0/3      0 Apr 23 15:50 2009 ./tmp/cwyy-ufida-200904230010.tar.log


釋放該檔案,可以看到是按照時間從早到晚順序依次釋放,之前的檔案被最後大小為0的檔案覆蓋。
zjapp01#[/usr/local/appbackup/tmp]tar xvf ../tmp.tar ./tmp/cwyy-ufida-200904230010.tar.log
x ./tmp/cwyy-ufida-200904230010.tar.log, 1409805 bytes, 2754 tape blocks
x ./tmp/cwyy-ufida-200904230010.tar.log, 1409805 bytes, 2754 tape blocks
x ./tmp/cwyy-ufida-200904230010.tar.log, 0 bytes, 0 tape blocks
zjapp01#[/usr/local/appbackup/tmp]ll
total 0
drwxr-xr-x   2 root       sys             96 Apr 23 15:53 tmp
zjapp01#[/usr/local/appbackup/tmp]ll tmp
total 0
-rw-r--r--   1 root       sys              0 Apr 23 15:50 cwyy-ufida-200904230010.tar.log


使用tar xvf 時,要釋放的檔案引數必須和使用tar tvf命令看到的內容完全一樣(每個字元都一樣)
從下面例子可見,在tmp.tar檔案中包含的內容./tmp/cwyy-ufida-200904230010.tar.log,tmp/cwyy-ufida-200904230010.tar.log,是相同的檔案的相對路徑備份,只是寫相對路徑時一個加了"./",一個沒有加,這樣在釋放的時候使用不加“./”的字串“tmp/cwyy-ufida-200904230010.tar.log“,可以看到只是釋放了沒有加"./"時備份的檔案。

zjapp01#[/usr/local/appbackup/tmp]tar tvf ../tmp.tar
rwxr-xr-x   0/3      0 Apr 23 15:22 2009 ./tmp/
rw-r--r--   0/3 1409805 Apr 23 15:22 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1063444480 Apr 23 15:23 2009 ./tmp/cwyy-ufida-200904230010.tar
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:38 2009 ./tmp/
rw-r--r--   0/3 1063444480 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar
rw-r--r--   0/3 1409805 Apr 23 15:38 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rwxr-xr-x   0/3      0 Apr 23 15:50 2009 ./tmp/
rw-r--r--   0/3      0 Apr 23 15:50 2009 ./tmp/cwyy-ufida-200904230010.tar.log
rw-r--r--   0/3 1409805 Apr 23 16:02 2009 /usr/local/appbackup/tmp/cwyy-ufida-200904230010.tar.log
zjapp01#[/usr/local/appbackup/tmp]tar xvf ../tmp.tar tmp/cwyy-ufida-200904230010.tar.log
x tmp/cwyy-ufida-200904230010.tar.log, 1409805 bytes, 2754 tape blocks

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733490/,如需轉載,請註明出處,否則將追究法律責任。