Centos

無法解壓縮 tar.gz.bz2

  • November 3, 2014

我們每天執行 MySQL 伺服器的備份。使用以下腳本:

 [ ! -d "${DEST}" ] && mkdir -p "${DEST}"

FILE=${DEST}/mysql-live.${NOW}-$(date +"%T").tar.gz.bz2
# get around error
mysqldump --single-transaction -u $MUSER -h $MHOST -p$MPASS DB | bzip2 -k -v > $FILE

現在,當我嘗試使用 tar xvjf 進行提取時,出現錯誤。它將使用 bunzip2 解壓縮到 tar.gz 文件,但是當我嘗試使用 tar xvf、xzvf、gunzip 解壓縮時,它顯示的不是 gzip 存檔。但是,如果我嘗試將其重命名為 tar,它不會顯示 tar 存檔。

如果有人有任何想法,我在這裡有點困惑,因為我沒有選擇。那會搖滾。它在 CentOS 上。

你的命令

mysqldump --single-transaction -u $MUSER -h $MHOST -p$MPASS DB | bzip2 -k -v > $FILE

說轉儲數據庫並將輸出通過管道傳輸到 bzip2,bzip2 應該將它的標準輸出寫入 $FILE。

stdin 的內容將被壓縮並寫入例如 a.tar.gz.bz2。這不會創建 tar 存檔或 gzip 壓縮 tar 存檔 (.tar.gz),只是創建一個名稱混亂的 .bz2 壓縮存檔。

當您嘗試提取存檔的內容時(出於未知原因),您嘗試使用 tar 實用程序,但對您來說,意外收到一條錯誤消息,可能類似於

tar -xvjf a.tar.gz.bz2
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

這是正確的,因為該文件不是 bzip 壓縮 gzip 壓縮 tar 存檔。你可能需要類似的東西

bunzip a.tar.gz.bz2

由於您沒有生成 tar 存檔或 gzip 壓縮存檔,因此您可能不應該將 .tar.gz 作為文件名的一部分,因為您發現它只會造成混亂。

引用自:https://serverfault.com/questions/601078