サイズパラメータがlogrotateで定義されている場合、ifemptyとnotifemptyはどのように機能しますか?

サイズパラメータがlogrotateで定義されている場合、ifemptyとnotifemptyはどのように機能しますか?

次のlogrotateコマンドがあるとしましょう。

/a/b/file.log{
size 5M 
ifempty
}

logrotate は、サイズが 5MB より大きくなければならないという条件で動作し、 logrotate がファイル処理を開始します。しかし、この場合、ifemptyはどのように機能しますか?この場合、優先順位はどうなりますか?では、通知が空の場合はどうですか?

答え1

この設定では:

  • size 5Mlogrotateログファイルが5MBを超える場合にのみ回転するように指示します。
  • ifemptyログファイルが空の場合でも表示されますlogrotate(デフォルトで有効)。

これらのディレクティブは競合する可能性があります。最初のディレクティブは0バイトのファイルを除外しますが、2番目のディレクティブには0バイトのファイルが含まれています。

現実は、これがifemptyファイル選択に明確な影響を与えないことです。一方、重要な「空」設定は、notifemptyログファイルが空の場合はすべての場合に回転を無効にします。グローバルに設定されている場合は、特定の設定のデフォルト動作を復元できるifemptyように存在します。notifempty

これについて考えるもう1つの方法は、ifemptyファイルnotifemptyを選択せず​​に他のすべての条件が適用された後に空のログファイルが回転したと見なされた場合にのみ発生することを決定することです。設定されている場合ifempty(これもデフォルトです)、設定されているnotifempty場合は空のログファイルが回転し、そうでない場合は設定が解除されます。

構成によっては、ログファイルは5MBを超える場合にのみ循環します。

関連情報