エンジン日付の問題のある logrotate ログ ファイル

エンジン日付の問題のある logrotate ログ ファイル

以下のログファイルがあります。ログファイルの末尾はdate

catalina.out.2014-02-01
catalina.out.2014-02-02
catalina.out.2014-02-03
catalina.out.2014-02-04
catalina.out.2014-02-05
catalina.out.2014-02-06
...
...

私のlogrorate設定

/opt/tomcat7.0/logs/catalina.* {
  rotate 5
  missingok
  notifempty
  size 5M
  compress
  copytruncate
}

何度も切り捨てられるので、以下を参照してください(サンプル)

catalina.out.2014-04-17-20140419.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz-20140424.gz
catalina.out.2014-04-17-20140419.gz-20140420.gz-20140421.gz-20140422.gz-20140423.gz-20140424.gz-20140425.gz

答え1

設定した内容については、logrotate要求どおりに動作しています。 を.*次のように置き換えてみてください.out:

/opt/tomcat7.0/logs/catalina.out {
  rotate 5
  missingok
  notifempty
  size 5M
  compress
  copytruncate
}

そうしないと、古い回転が常にキャッチされてしまいます。それが設定されているためです。

答え2

を変更することも明らかに提案します。.*これは通常のシェル グロブのように機能するため、?と を*複数回使用できます。次のようになります。

/opt/tomcat7.0/logs/catalina.*.????-??-?? {
  rotate 5
  missingok
  notifempty
  size 5M
  compress
  copytruncate
}

一致するカタリナアウト2014-02-06一致しないカタリナ

ここからの素晴らしいヒントhttps://superuser.com/a/255970/312809logrotate の設定を確認する方法:

logrotate -d -f /etc/logrotate.conf
  • -d = デバッグ モードをオンにします。デバッグ モードでは、ログや logrotate 状態ファイルは変更されません。

  • -f = 必要でないと判断した場合でも、logrotate に強制的にローテーションを行うように指示します。

関連情報