У меня есть работа над пакетной системой, которая работает очень долго и производит тонны продукции. На самом деле так много, что мне нужно передать стандартный вывод через gzip, чтобы пакетный узел не заполнил свою рабочую область и впоследствии не вышел из строя.
longscript | gzip -9 > log.gz
Теперь я хотел бы изучить результаты работы, пока она еще выполняется. Итак, я делаю это:
gunzip log.gz
Это выполняется очень долго, так как это огромный файл (несколько ГБ). Я вижу выходной файл, созданный во время его работы, и могу посмотреть, как он создается.
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 ... может быть, это то, что вы ищете? Сохраняет оригинал без изменений.