logrotate 对 apache 日志文件到底做了什么?(apache 2.4 - ubuntu 14.04)

logrotate 对 apache 日志文件到底做了什么?(apache 2.4 - ubuntu 14.04)

除了几个基本的 VHOST,我还有默认的 apache 和 apache 日志配置。每当我尝试查看我的 apache 日志文件(error.log、access.log)时,我都会看到这些文件不断被重新排序和重新组织,不幸的是,我不明白这是什么原因或方法。

据我所知,此日志文件操作由名为“logrotate”的实用程序执行。
请参阅手册页中的描述

logrotate 旨在简化生成大量日志文件的系统的管理。它允许自动轮换、压缩、删除和邮寄日志文件。每个日志文件可以按日、周、月或当其变得太大时进行处理。

我已阅读以下资源:

上述资源提供了很好的技术解释,说明如何配置logrotate,但我无法得到关于对数旋转点是,从而了解它的工作原理。我可以看到它对一些文件进行了压缩,这样做的好处是显而易见的。

我知道 logrotate 是一个通用实用程序,可以处理许多服务的日志文件 - 因此它的功能根据每个配置而变化 - 但是,在 Ubuntu 14.04 上的 apache 2.4 环境中,“logrotate”起什么作用?

更新:

我找到了这个文章我发现它对 logrotate 的作用给出了一个很好的常识性解释,希望可以帮助遇到这个问题的其他人。

在查看 /var/log 或其任何子目录中的目录列表时,您可能会遇到名称为 daemon.log.0、daemon.log.1.gz 等的日志文件。这些日志文件是什么?它们是“轮换”日志文件。也就是说,它们会在预定义的时间段后自动重命名,并开始新的原始日志。经过更多时间后,日志文件会使用 gzip 实用程序进行压缩,例如 daemon.log.1.gz 的情况。日志轮换的目的是存档和压缩旧日志,以便它们占用更少的磁盘空间,但仍可在需要时进行检查。什么处理此功能?当然是 logrotate 命令!

答案1

对于写入日志文件的服务,假设service.loglogrotate实用程序会执行以下几件事:

  1. service.log每天开始一个新的(空)文件;
  2. 将最后一个压缩service.log为 .gz 文件,以免占用太多空间;新的压缩文件会附加一个索引号,如 service.log.gz.00001;
  3. 最旧的压缩文件service.log.gz.[index]已被删除。

这样,您可以无限期地运行您的服务,而日志不会不断增长。所有上述行为都是可配置的。

相关内容