tar 分卷壓縮&解壓縮命令

regonly1發表於2009-02-16

昨天匯出了一個oracle全表dmp檔案,約60G。compress壓縮後還有12G。
本想下載到本地硬碟E,無奈看了下,本地硬碟格式是fat32的,而超過4G的檔案需要NTFS才行。手動轉換檔案系統也挺麻煩,直接轉怕把盤廢了,備份麼要1個多小時。
就想了個其他的辦法,將dmp檔案分塊。12G麼分成3G*4好了。
於是查詢資料,發現其實並不是tar命令本身支援的,而是直接得將資料檔案強行分隔。
壓縮xxx.dmp檔案:
compress xxx.dmp
生成xxx.dmp.Z。

將檔案分塊:
split -b xxx.dmp
生成xaa,xab,xac,xad,xae五個檔案(分四塊還不夠,多出來一點);

然後就是傳輸到目標server:
scp xaa username@192.168.11.83:
當然,這個傳輸要很長時間(網路跨度比較大)。
而且scp又不能跑後臺執行,查了下資料,發現可以用ssh-keygen這個工具來生成公鑰和私鑰來進行無密碼傳輸,省去了互動的部分。就可以直接在後臺執行了。這部分下下面的一篇文章中有詳細的介紹(轉過來的)。

傳輸完成後,再將各個分塊檔案合併:
cat xa* > xxx.dmp.Z
然後就是uncompress xxx.dmp.Z了。

另外就壓縮工具再記錄一下:
tar
j tar.bz2格式壓縮(經過測試,相對於zip/gzip/compress壓縮的的效率最高);
z tar.gz格式壓縮;
v 顯示壓縮過程;
f 指定檔案;
t 預覽壓縮包中的內容;
p 保留原壓縮檔案中的許可權;
c 表示打包;
x 表示解包;
舉例:
有目錄或檔案lyon
現在要壓縮成tar.gz格式的,且壓縮後的檔名為:lyon.tar.gz
則有: tar zcvf lyon.tar.gz lyon      (這個命令unix和linux都是支援的)

如果要壓縮成tar.bz2格式
則有: tar jcvf lyon.tar.bz2 lyon    (這個格式在有些unix上不支援)

直接打tar包:
tar cvf lyon.tar lyon
然後壓縮:
gz:    gzip -S .gz lyon.tar
bz2:  bzip2 -S .bz2 lyon.tar

對以上檔案打包了,然後又想檢視這個包裡面的內容,則可以用t引數來實現:
tar:tar vtf lyon.tar
tar.bz2: tar jtvf lyon.tar.bz2
tar.gz:    tar ztvf lyon.tar.gz

如果想保留原有檔案的許可權,則有:
tar zxvfp lyon.tar.gz

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

相關文章