logrotateはワイルドカードをどのように処理しますか?

logrotateはワイルドカードをどのように処理しますか?

このようなlogrotate構成ファイルがある場合

# matches multiple ones
/var/log/project/*.log {
   ...

   prerotate
      ...
   endscript

   ...
} 

では、ここでglobはどのように機能しますか?このパターンに一致するログファイルが3つある場合、事前回転スクリプトは3回実行されますか、それとも1回だけ実行されますか?何の手がかりも見つかりませんでした。logrotate (8)

ベストアンサー1

それは価値があるので、logrotateman 3 globはで利用可能なglob.h(参照:)を使用しますman 7 glob。多くの点でbashワイルドカード(拡張ワイルドカードなし)と似ていますが、まったく同じではありません。特に、これは以下をサポートすることを意味します。

?      match a single character
*      match any string, including the empty string
[...]  match any of the listed characters
[a-z]  match a range of characters
[!...] match any but the listed characters
[:xx:] match various character classes, like [:digit:], [:blank:], etc.

ワイルドカードは、パスの各コンポーネントに個別に適用されます。たとえば、複数のホストからログを収集するrsyslogサーバーがある場合は、次のようにlogrotateセクションを使用できます。

/var/log/host/*/*/syslog {
    rotate 5
    ...
}

おすすめ記事