이것은 내 구성 파일입니다.
/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시인지 어떻게 알 수 있습니까?
(또한 15:00 이후에 테스트를 실행했지만 분명히 /var/lib/logrotate/status 이외의 어딘가에 15:00에 수행한 테스트가 저장되어 있습니다.)
상태 파일을 보면 아무것도 저장되지 않았습니다.
$ cat /var/lib/logrotate/status
logrotate state -- version 2
$
그리고 어쨌든 상태 파일에 대해 /dev/null을 사용하도록 지시했으므로 전역 상태 파일에 무엇이 있는지는 중요하지 않습니다. 문서에서 상태 정보를 저장하는 대체 위치에 대한 내용을 찾을 수 없으므로 해당 테스트를 빠르게 연속해서 실행할 수 있도록 테스트를 무시하도록 만드는 방법을 모르겠습니다.