Centos
無法解壓縮 tar.gz.bz2
我們每天執行 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 作為文件名的一部分,因為您發現它只會造成混亂。