我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
。
答案3
另一个不错的选择是查看/var/log/messages
CentOS 上的错误,例如 cron.daily 中的错误/etc/cron.daily/logrotate
logrotate: ALERT exited abnormally with [1]
您也可以手动以调试模式运行并检查错误:
/usr/sbin/logrotate -d /etc/logrotate.conf
答案4
当 logrotate 不轮换日志或进入失败状态时,最好在调试模式下手动运行 logorate 以查看它列出的错误,如下所示:
/usr/sbin/logrotate -d /etc/logrotate.d/*
此命令测试轮换位于 中的所有服务的日志/etc/logrotate.d
。如果它列出错误(例如由重复的日志条目引起的错误),您就会知道 logrotate 出现问题的原因。