【问题标题】:How to compress a "tail -f" to a compressed (gziped) file?如何将“tail -f”压缩为压缩(gzipped)文件?
【发布时间】:2014-01-14 18:43:44
【问题描述】:

我尝试了以下方法,但生成的文件大小为 0。

tail -f /logs/localhost.log | gzip -c -9 -f > compressed.gz

localhost.log 非常活跃。

谢谢。

【问题讨论】:

  • gzip 做了很多缓冲。在任何东西到达输出之前可能需要超过 1000 行。也许它不是那个活跃的?
  • 为什么不gzip -c -9 -f < /log/localhost.log > /log/compressed.gz

标签: linux compression gzip pipe tail


【解决方案1】:

logrotate(8) 旨在解决此类问题 - 它旋转和压缩日志文件。

【讨论】:

    【解决方案2】:

    你只是不够耐心。这将起作用,它将写入 gzip 文件。需要一段时间来积累足够的输入来写入第一个压缩块。特别是如果输入是高度可压缩的,例如日志条目彼此非常相似。

    这有一个问题,gzip 文件永远不会被正确终止,因为 gzip 永远不会得到文件结尾。

    【讨论】:

      【解决方案3】:

      您不能这样做,因为 gzip 实用程序不会逐行读取输入,它需要 EOF。 但是你可以使用任何具有 zlib 实现的编程语言编写你的 on wrapper。

      【讨论】:

      • 我不确定gzip 是否逐行读取(但它肯定有一些缓冲区),并且我不确定它在 EOF 之前不会工作(实际上,当使用 gziptartardy 之后的管道中,它在EOF 之前开始工作)。
      猜你喜欢
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      相关资源
      最近更新 更多