Linux 上使用 Logrotate 进行日志管理

2014/7/29 posted in  软件配置  

Logrotate 是 Linux 系统自带的日志文件管理工具,使用 logrotate 指令,可让你轻松管理系统所产生的记录文件。它提供自动替换,压缩,删除和邮寄记录文件,每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。

Logrotate 的主要配置文件

  • /etc/cron.daily/logrotate 此脚本每天执行一次,因此每天处理一次日志文件
  • /etc/logrotate.conf 定义日志文件的全局配置
  • /etc/logrotate.d 针对单个日志文件的配置

全部配置参数参考

部分配置参数详解

  • size 当达到规定的大小时,自动替换日志文件。有效的参数:size 100, size 100k, size 100M and size 100G
  • copytruncate 创建日志文件的副本,然后清空当前日志文件。使用此选项时,create选项失效。在日志复制到清空的这个时间内,新增的日志可能会丢失。
  • rotate 保存日志文件的数量
  • compress 使用 gzip 压缩旧的日志文件
  • dateext 在旧日志文件名后追加时间,默认YYYYMMDD;时间格式可以通过dateformat配置
  • dateformat 只支持 %Y %m %d %s 这四个参数,配合dateext使用时,只能按年、月、日、秒的顺序。
  • monthly, daily, weekly 保存日志的间隔时间
  • maxage 删除超过设置天数的日志文件

简单示例

/files/log.log {
    size 10M
    copytruncate
    rotate 5
    dateext
    dateformat %Y-%m-%d-%s
    daily
    maxage 3
}

如果等不及 CRON,手动执行:logrotate -v -f /etc/logrotate.conf