logrotate を手動で呼び出して正常に動作するにもかかわらず、logrotate を使用して tomcat の catalina.out を毎日自動的にローテーションしようとしています。私はそこにあるすべてのソリューションを試しましたが、回転させることができません。私は基本的にRHEL 7であるOracle Linux 7.5を使用しています。
これが私が取ったステップです:
次のようなファイル /etc/logrotate.d/tomee.conf を作成しました。
/apache-tomee-plus-7.0.4/logs/catalina.out
{
su opc opc
daily
rotate 7
compress
notifempty
missingok
copytruncate
}
logrotate を手動で実行できます。sudo /usr/sbin/logrotate /etc/logrotate.conf
私も使用してデバッグしようとしましsudo /usr/sbin/logrotate -d /etc/logrotate.conf
たが、出力にエラーはありません
...
rotating pattern: /apache-tomee-plus-7.0.4/logs/catalina.out
after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
switching euid to 1000 and egid to 1000
considering log /apache-tomee-plus-7.0.4/logs/catalina.out
log needs rotating
rotating log /apache-tomee-plus-7.0.4/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20181211'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
copying /apache-tomee-plus-7.0.4/logs/catalina.out to /apache-tomee-plus-7.0.4/logs/catalina.out-20181211
truncating /apache-tomee-plus-7.0.4/logs/catalina.out
compressing log with: /bin/gzip
switching euid to 0 and egid to 0
...
しかし、それでも毎日自動的に行うわけではありません。
/var/lib/logrotate/logrotate.status
によると、他のログはローテーションされていますが、catalina.out はローテーションされていないため、logrotate が実行されていることもわかっています。
cat /var/lib/logrotate/logrotate.status
logrotate state -- version 2
"/var/log/yum.log" 2018-11-29-18:44:14
"/var/log/up2date" 2018-9-17-19:0:0
"/apache-tomee-plus-7.0.4/logs/catalina.out" 2018-12-8-0:37:14
"/var/log/chrony/*.log" 2018-9-17-19:0:0
"/var/log/wtmp" 2018-12-3-17:48:49
"/var/log/spooler" 2018-11-29-18:44:14
"/var/log/btmp" 2018-12-3-17:48:49
"/var/log/iscsiuio.log" 2018-9-17-19:0:0
"/var/log/maillog" 2018-12-11-3:7:1
"/var/log/secure" 2018-12-11-3:7:1
"/var/log/messages" 2018-12-11-3:7:1
"/var/account/pacct" 2018-9-17-19:0:0
"/var/log/cron" 2018-12-11-3:7:1
12-11 にローテーションされたという複数のエントリがあることに注意してください。しかし、catalina.out は 12-8 以降ローテーションされていませんが、まだローテーションされていません。
どんな助けでも大歓迎です。ありがとう。