これは私の設定ファイルです。
/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を使用するように指示したので、グローバルステータスファイルに何があるかは問題ではありません。ドキュメントにステータス情報を保存する代替場所に関するコンテンツが見つからないため、テストをすばやく連続して実行できるようにテストを無視する方法はわかりません。