我曾嘗試以下,但生成的文件保持在大小爲0如何將「tail -f」壓縮成壓縮(gziped)文件?
tail -f /logs/localhost.log | gzip -c -9 -f > compressed.gz
localhost.log十分活躍。
謝謝。
我曾嘗試以下,但生成的文件保持在大小爲0如何將「tail -f」壓縮成壓縮(gziped)文件?
tail -f /logs/localhost.log | gzip -c -9 -f > compressed.gz
localhost.log十分活躍。
謝謝。
你不能這樣做,因爲gzip實用程序不會逐行讀取輸入,它需要EOF。 但是你可以使用任何具有zlib實現的編程語言編寫你的包裝器。
我不確定'gzip'是逐行讀取的(但它肯定有一些緩衝區),我不確定它在EOF之前不會工作(實際上,在'tar'之後的管道中使用'gzip'時和'tardy'它在EOF之前開始工作)。 –
logrotate(8)旨在解決這類問題 - 它旋轉並壓縮日誌文件。
你只是沒有耐心。這將工作,並將寫入gzip文件。積累足夠的輸入來寫第一個壓縮塊需要一段時間。特別是如果輸入是高度可壓縮的,例如日誌條目彼此非常相似。
儘管gzip文件永遠不會被正確終止,但這有一個問題,因爲gzip永遠不會得到文件結尾。
gzip做了很多緩衝。在任何輸出到達之前,它可能需要超過1000行。也許它不是*那*活躍? – pentadecagon
爲什麼不'gzip -c -9 -f/log/compressed.gz'? –