使用 Logrotate 旋转日志子集

使用 Logrotate 旋转日志子集

我有许多以/var/log/myapp/结尾的文件.log。因此我创建了一个

/var/log/myapp/*.log {
  daily
  create 644
  rotate 90
  compress
  missingok
}

这非常有效。我这里有许多不同的日志类型,我想更改部分访问日志(access_log_.log)的保留时间,使其保留时间仅为 45 天。那么我该如何挑选这两个并更改保留时间呢?如果我像这样附加一个新块:

/var/log/myapp/access_log_*.log {
  daily
  create 644
  rotate 45
  compress
  missingok
}

然后它首先进行通常的对数旋转,然后对那些旋转进行对数旋转,从而产生巨大的混乱。有什么更好的方法可以做到这一点?

答案1

要么指定更精确的 glob 模式,要么将不同的轮换计划日志放入单独的目录中。Logrotate 的配置语言非常非常有限。

答案2

您必须确保日志名称扩展不相互包含。

我首先会尝试重命名 access_log_*.log,也许是 access_log_*.txt(或者只是删除后缀)或将它们放入不同的目录中。

不要忘记,您可以提供一个日志列表供 logrotate 采取行动,而不是使用正则表达式。

相关内容