資料公開

資料公開

タイトル 破損したGZIPファイルの回復ツール
カテゴリ その他
概要 GZIPファイル(.gz、.tgz、.tar.gz)をSFTPなどで転送した際、
下記のようにファイルが破損する(ファイル終端記号EOFが複数含まれる)ことがあります。
____________________________________________

gunzip file.tgz
 gunzip: file.tgz: unexpected end of file
____________________________________________


上記エラーが発生した際、GZIPヘッダの部分でファイルを分割し、
可能な限りデータを回収するbashスクリプトを作成しました。

【使用方法】
1.ターミナル(WindowsはWSL2またはCygwinのターミナル)を起動します。

2. ターミナル上でダウンロードしたbashスクリプトを実行します。
 "file.tgz"の部分は解凍するファイル名(ファイルパス)にご変更ください。
 なお、1つのディレクトリで2つ以上スクリプトを起動しないでください。
 ファイルの回収状況はlog.txtに記録されます。
____________________________________________

bash ./gzs3.sh file.tgz
____________________________________________

※bashスクリプト中のIFBUFを1にすると処理が高速化できますが、メモリを大量に消費します。
※実行にはbashとxxdが必要です。
※作業ファイル名は__tmp__*です。同名ファイルがある場合はディレクトリを変更して下さい。
※ファイルが途中終了している場合はtar: Error exit delayed from previous errors.と表示されます。
 1つのファイルが複数のGZIPファイルに分かれてしまっている場合は
 bashスクリプト中のIREMOVEを0にし、手動でファイルを修復してください。