logrotate把自己的日志保存在哪里?

logrotate把自己的日志保存在哪里?

logrotate在 EC2 AWS 机器中运行轮换 Apache 日志。打包后,Apache 日志将通过 s3fs 保存到 AWS S3 中。问题是我最近注意到我没有轮换日志。在 S3 中,我有第 48 天->第 60 天的旧日志,但第 1 天->第 47 天没有出现。

我的问题是:logrotate 将其自己的日志保存在哪里?我可能对 s3fs 有某种问题,但在做任何事情之前我需要知道。我试图在某处找到日志,但找不到。

任何想法?

答案1

logrotate默认情况下不记录任何内容。通常它应该在你的 cron 的某个地方,例如:

$ grep -r -- 'logrotate.conf' /etc/cron*
/etc/cron.daily/logrotate:/usr/sbin/logrotate /etc/logrotate.conf

您可以手动运行该程序来查看哪里出了问题,或者将 logrotate 输出重定向到上述 cron 中的文件来查看第二天​​发生的情况。

可能某处的配置不正确,导致 logrotate 运行中断。

答案2

logrotate 唯一正常记录的内容是在 中cat /var/lib/logrotate/status

这取自https://serverfault.com/a/518134/266525

答案3

另一个不错的选择是查看/var/log/messagesCentOS 上的错误,例如 cron.daily 中的错误/etc/cron.daily/logrotate

logrotate: ALERT exited abnormally with [1]

您也可以手动以调试模式运行并检查错误:

/usr/sbin/logrotate -d /etc/logrotate.conf

来源:https://access.redhat.com/solutions/32831

答案4

当 logrotate 不轮换日志或进入失败状态时,最好在调试模式下手动运行 logorate 以查看它列出的错误,如下所示:

/usr/sbin/logrotate -d /etc/logrotate.d/*

此命令测试轮换位于 中的所有服务的日志/etc/logrotate.d。如果它列出错误(例如由重复的日志条目引起的错误),您就会知道 logrotate 出现问题的原因。

相关内容