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

logrotate 对 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”有什么作用?

答案1

这个想法是,您始终拥有一个相对新鲜的主文件(例如 access_log 或 error_log),其中包含最新条目。当日志变得太旧或太大时,logrotate 会创建存档文件,以便不会丢弃任何信息(类似于 access_log-YYYYMMDD)。

因此,仍然可以访问较旧的日志,而主日志文件的大小不会失控。包含较少信息的较小文件更易于读取和调试 - 特别是在这些日志可能增长到几 GB 的繁忙服务器上。

例如,在 CentOS 上,Apache 日志每 7 天轮换一次。

您可以在闲暇时删除存档文件,或者也让 logrotate 处理删除操作。

查看男人对数旋转更多细节。

答案2

要点logrotate是,如果允许应用程序无限期地写入日志文件,

  • 你将耗尽磁盘空间,并且
  • 文件将变得太大而无法查看(有些人在 100MB 日志文件上使用 vi...)

所以它的作用是

  • 提供一种可配置的方式改名当前活动文件到保存的副本,
  • 通知正在写入日志文件的服务以启动一个新文件,并且
  • 提供一种可配置的方式来告知需要多少磁盘空间来保存副本

仅重命名日志文件是行不通的,因为许多程序都会使文件保持打开状态。如果重命名,程序将继续写入重命名的文件。

设计用于日志记录的程序通常被设计为响应信号。如果不, (logrotate 可配置),当日志文件变大时可以重新启动服务。

进一步阅读:

相关内容