gpt4 book ai didi

tomcat - logrotate 不旋转 catalina.out

转载 作者:行者123 更新时间:2023-11-28 21:47:22 25 4
gpt4 key购买 nike

我正在尝试每天使用 logrotate 自动轮换出 tomcat 的 catalina.out,即使我可以手动调用 logrotate 并且它工作正常。我正在使用我已经尝试了所有解决方案,但我无法让它旋转。我在 Oracle Linux 7.5 上,它基本上是 RHEL 7。

以下是我采取的步骤:

我创建了一个/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
...

但它仍然不会每天自动执行。

我也知道 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 日以来就没有轮换过,但它仍然没有轮换。

非常感谢任何帮助。谢谢。

最佳答案

这是一个老案例,我看到了,但我觉得我应该添加我的解决方案,因为它会轮换日志,这是最初的问题。

在我的例子中,我设置/etc/logrotate.d/tomcat 文件的方式与贾斯汀在最初的问题中所做的大致相同:

/<apache-location>/tomcat/logs/catalina.out {
daily
copytruncate
rotate 180
compress
missingok
maxsize 200M
}

(我的 Apache 位置很奇怪,因此请酌情替换。rotate 180 将我的日志保存大约 30 天,如果我的数学计算不太远的话(24 小时 * 30 天 = 720 小时 - -> 如果每 4 小时轮换一次,则产生 720/4 = 180 次 --> 保留 180 个日志文件。)

但我是从一个普通的 cronjob 触发执行的,例如:

0 */4 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /var/log/cut.log 2>&1

要每天轮换,只需将 cronjob 的第一部分调整为例如0 0 * * *(每天午夜)。

-vf 选项用于打开详细(用于记录 cron)并强制执行轮换。/var/log/cut.log 是我添加的专门用于记录 cron 作业的文件。 >>/var/log/cut.log 2>&1 当然可以删除。

我正在以 root 用户身份运行轮换/cron 作业。

这似乎适用于我的系统,在最初遇到很多 问题之后。不确定这是不是理想的解决方案,但至少我避免了 catalina.out 长到天上,这是我的主要目标,而且我也怀疑原始问题的目标...

关于tomcat - logrotate 不旋转 catalina.out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53729722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com