怎样用Logrotate管理Linux日志文件?

日志文件是在确保Linux系统安全方面最有价值的工具。而logrotate是一个提供给管理员管理系统文档的程序。logrotate还可以用于备份文件,建立能被系统使用的副本。

什么是logrotate程序?

Logrotate是一个日志文件管理器。它用于定期从系统清除老日志和产生新日志。这个程序可以基于文件年龄或大小旋转循环,通常是由cron自动运行。此外,logrotate程序还可以用于压缩日志文件或配置发给用户的电子邮件。

Logrotate的配置

Logrotate程序是在 /etc/logrotate.conf配置的。这是一个text文档,包含许多配置选项(如下表)。可以给系统的任何日志制定配置参数。此外,这些选项还允许logrotate从其他日志文件读取和使用参数。

选项

  • Functioncompress — 用gzip压缩旋转的日志文件。
  • nocompress — 在不需要压缩旋转日志文件的情况下使用。
  • copytruncate — 用于还在向开放日志文件写信息的过程。该选择将活归档日志文件制成副本。
  • nocopytruncate — 把日志文件复制进备份,但该开放文件不会被裁剪。
  • create mode owner group — 旋转日志文件并创建允许特定组合用户的新文件。缺省是使用与原始文件一样的模式,组合用户。
  • nocreate — 可以防止产生新日志文件。
  • delaycompress — 在使用压缩选择时,旋转文件不会在下一个循环开始时被压缩。
  • nodelaycompress —    日志文件会在循环过程中被压缩。
  • errors address — 将logrotate错误邮件发送到某个地址。
  • ifempty — 即使在空文件时也要旋转。这是Logrotate的缺省项。
  • notifempty — 空文件不旋转。
  • mail address — 这个邮件日志文件是循环到一个地址,因此能有效从系统中清楚。
  • nomail    在邮件日志循环时,副本不邮寄。
  • olddir directory — 这个选项会将循环日志文件保持在特定目录。该目录必需与现有日志文件在同一文件系统。
  • noolddir — 循环的日志文件与现有文件处于相同目录。
  • prerotate/endscript — 结束和执行旋转任务。
  • postrotate/endscript — 可以在一个日志文件旋转时执行的命令。
  • daily — 每日旋转日志文件。
  • weekly — 每周旋转日志文件。
  • monthly — 每月旋转日志文件。
  • rotate count — 在删除前旋转文件的特定次数。如果计数为零,就意味着没有副本保留。而5则意味着保留5个副本。
  • tabootext [+] list — This directs logrotate to not rotate files with the specified extension. The default list of extensions is .rpm-orig, .rpmsave, v, and ~。
  • size size — 在日志文件达到一定大小时开始旋转。大小是以bytes (默认), kilobytes (sizek)或megabytes (sizem)计算。

/etc/logrotate.conf文件

Logrotate.conf这个文件是在安装时就确定的默认配置。可以根据自己的需要进行额外配置。