Logrotate --debug가 대체 위치에서 상태를 가져옵니다.

Logrotate --debug가 대체 위치에서 상태를 가져옵니다.

이것은 내 구성 파일입니다.

/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을 사용하도록 지시했으므로 전역 상태 파일에 무엇이 있는지는 중요하지 않습니다. 문서에서 상태 정보를 저장하는 대체 위치에 대한 내용을 찾을 수 없으므로 해당 테스트를 빠르게 연속해서 실행할 수 있도록 테스트를 무시하도록 만드는 방법을 모르겠습니다.

관련 정보