连接 gzip 压缩的 Apache 日志

mar*_*ton 1 compression log-files apache-2.2

我们每天轮换和压缩我们的 Apache 日志,但很明显这不够频繁。一个未压缩的日志大约是 6G,这已经接近填满我们的日志分区(是的,我们将来会把它做得更大!)并且每天都需要花费大量的时间和 CPU 来压缩。我们必须为我们的统计处理每天生成一个 gziped 日志。显然,我们可以将日志移动到具有更多空间的分区,但我也希望全天分散压缩开销。

使用 Apache 的rotatelogs,我们可以更频繁地轮换和压缩日志——比如说,每小时——但是我怎样才能将所有每小时压缩的日志连接成当天正在运行的压缩日志,而无需解压以前的日志?我不想解压缩 24 小时的数据并重新压缩它,因为这具有我们当前解决方案的所有缺点。

Gzip 似乎没有提供任何附加或连接选项,但也许我错过了一些明显的东西。这个问题表明直接 shell 连接“有效”,因为可以解压缩存档,但这gzip -l似乎不起作用。

或者,也许这仍然是一种糟糕的做事方式。欢迎其他建议——我们唯一的限制是我们相对较小的日志分区和提供每日压缩日志的需要。

CK.*_*CK. 7

gzip手册页应该有你想要的东西,但你可以直接concatate它们:

cat file1.gz >> file2.gz
gzip -c file1 >> file2.gz
Run Code Online (Sandbox Code Playgroud)

压缩不如压缩一个文件那么好,但您可以通过以下方式恢复:

zcat old.gz | gzip > new.gz
Run Code Online (Sandbox Code Playgroud)