这是我的配置文件:
/path/to/somelog.log {
daily
copytruncate
compress
delaycompress
nocreate
missingok
rotate 7
dateext
dateyesterday
dateformat _%Y-%m-%d-%H-%i-%s
}
为了进行测试,我尝试使用以下命令运行 logrotate 的一些测试:
$ sudo logrotate --state /dev/null --log ./logrotate.log /etc/logrotate.d/my-config
但是当我运行它时,我得到这样的条目:
considering log /path/to/somelog.log
Creating new state
Now: 2023-07-21 15:11
Last rotated at 2023-07-21 15:00
log does not need rotating (log has been already rotated)
这很奇怪,因为
如果我告诉它使用 /dev/null 作为其状态文件,它如何知道我上次运行测试是在 15:00?
(我也在 15:00 之后运行了测试,但显然除了 /var/lib/logrotate/status 之外的某个地方它存储了我在 15:00 所做的测试)
查看状态文件,没有保存任何内容:
$ cat /var/lib/logrotate/status
logrotate state -- version 2
$
而且我已经告诉它无论如何都使用 /dev/null 作为状态文件,所以全局状态文件中的内容并不重要。我在文档中找不到有关它存储状态信息的替代位置的任何内容,因此我不知道如何让它忽略测试,以便我可以快速连续运行这些测试。