Eu tenho um trabalho em um sistema em lotes que executa extremamente longo e produz toneladas de saída. Tanto que, na verdade, tenho que canalizar a saída padrão por meio do gzip para impedir que o nó do lote preencha sua área de trabalho e, subsequentemente, quebre.
longscript | gzip -9 > log.gz
Agora, gostaria de investigar a saída do trabalho enquanto ele ainda está em execução.
Então eu faço isso:
gunzip log.gz
Isso é muito longo, pois é um arquivo enorme (vários GB). Eu posso ver o arquivo de saída que está sendo criado enquanto ele está sendo executado e posso examiná-lo enquanto ele está sendo construído.
tail log
> some-line-of-the-log-file
tail log
> some-other-line-of-the-log-file
No entanto, no final das contas, o gzip encontra o final do arquivo gzipado. Como o trabalho ainda está em execução e o gzip ainda está gravando o arquivo, ainda não há um rodapé adequado, então isso acontece:
gzip: log.gz: unexpected end of file
Depois disso, o arquivo de log extraído é excluído, pois o gzip acha que os dados extraídos corrompidos não são úteis para mim. Eu, no entanto, discordo - mesmo que as duas últimas linhas estejam embaralhadas, a saída ainda é muito interessante para mim.
Como posso convencer o gzip a deixar-me manter o arquivo "corrompido"?