我正在尝试使用logrotate按日自动轮换tomcat的catalina.out,即使我可以手动调用logrotate并且它可以正常工作。 我使用了所有可用的解决方案,但我无法使其轮换。 我正在使用基本上是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
}
我可以手动执行日志轮转,使用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
...
但它仍然不能每天自动执行。
我也知道logrotate正在运行,因为根据/var/lib/logrotate/logrotate.status
的说法,其他日志正在轮换,但不包括catalina.out。
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以来就没有进行旋转,但它仍未旋转。
非常感谢任何帮助。谢谢。
su opc opc
运行,日志正确地进行了轮换。 - Justin