資料公開
タイトル | 破損した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にし、手動でファイルを修復してください。 |