非常に長く実行され、大量の出力を生成するバッチシステムのジョブがあります。実際には、バッチノードが作業領域を埋め尽くしてクラッシュするのを防ぐために、gzipを介して標準出力をパイプ処理する必要があります。
longscript | gzip -9 > log.gz
ここで、ジョブの実行中にジョブの出力を調査したいと思います。だから私はこれをします:
gunzip log.gz
これは巨大なファイル(数GB)であるため、非常に長く実行されます。実行中に作成される出力ファイルを確認でき、ビルド中に出力ファイルを確認できます。
tail log
> some-line-of-the-log-file
tail log
> some-other-line-of-the-log-file
ただし、最終的に、gzipはgzip圧縮されたファイルの終わりに到達します。ジョブはまだ実行中で、gzipはまだファイルを書き込んでいるため、適切なフッターはまだないため、次のようになります。
gzip: log.gz: unexpected end of file
この後、gzipは破損した抽出データは私には役に立たないと考えているため、抽出ログファイルは削除されます。しかし、私は同意しません。最後の数行がスクランブルされていても、出力は私にとって非常に興味深いものです。
「破損した」ファイルを保持するようにgzipを説得するにはどうすればよいですか?
gunzip -c
出力をstdoutに書き込みます...たぶんそれがあなたが探しているものですか?オリジナルは変更されません。