如何获得 logrotate dateext 以反映日志日期而不是轮换日期?

Ada*_*dam 7 logging logrotate date

我的 Apache logrotate 配置如下所示:

/var/log/http/*log {
    monthly
    dateext
    dateformat .%Y.%m
    [... rest stripped for brevity ...]
}
Run Code Online (Sandbox Code Playgroud)

这很好用,除了旋转文件名上的日期比日志实际涵盖的时间晚一个时间段,例如error_log.2012.09涵盖 2012-08-01 到 2012-08-31。

我意识到 Apache 有其他选项(例如 cronolog),但我还有一堆其他日志需要轮换,除了这个问题之外,logrotate 确实正是我所需要的。

有没有办法让 logrotate 在生成旋转的文件名时使用日期偏移量——或者,更好的是,找出前一个时间段?

Ada*_*dam 14

3.8.0中添加(虽然看svn历史,貌似是3.7.9中真正添加的):

http://svn.fedorahosted.org/svn/logrotate/tags/r3-8-0/CHANGES

- added "dateyesterday" option (see man page)
Run Code Online (Sandbox Code Playgroud)