次のlogrotateコマンドがあるとしましょう。
/a/b/file.log{
size 5M
ifempty
}
logrotate は、サイズが 5MB より大きくなければならないという条件で動作し、 logrotate がファイル処理を開始します。しかし、この場合、ifemptyはどのように機能しますか?この場合、優先順位はどうなりますか?では、通知が空の場合はどうですか?
答え1
この設定では:
size 5M
logrotate
ログファイルが5MBを超える場合にのみ回転するように指示します。ifempty
ログファイルが空の場合でも表示されますlogrotate
(デフォルトで有効)。
これらのディレクティブは競合する可能性があります。最初のディレクティブは0バイトのファイルを除外しますが、2番目のディレクティブには0バイトのファイルが含まれています。
現実は、これがifempty
ファイル選択に明確な影響を与えないことです。一方、重要な「空」設定は、notifempty
ログファイルが空の場合はすべての場合に回転を無効にします。グローバルに設定されている場合は、特定の設定のデフォルト動作を復元できるifempty
ように存在します。notifempty
これについて考えるもう1つの方法は、ifempty
ファイルnotifempty
を選択せずに他のすべての条件が適用された後に空のログファイルが回転したと見なされた場合にのみ発生することを決定することです。設定されている場合ifempty
(これもデフォルトです)、設定されているnotifempty
場合は空のログファイルが回転し、そうでない場合は設定が解除されます。
構成によっては、ログファイルは5MBを超える場合にのみ循環します。