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


25

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

我的问题是:logrotate在哪里保存自己的日志?s3fs可能存在某种问题,但是在执行任何操作之前我需要知道。我试图在某处找到日志,但找不到。

任何的想法?

Answers:


20

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

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

您可以手动运行该命令以查看出了什么问题,也可以将logrotate输出重定向到上述cron中的文件中,以查看第二天​​发生了什么。

可能是某个配置不正确并导致logrotate运行中断。


手动运行logrotate +1,看看出了什么问题
cjc 2012年

感谢您的回答,但是我真的想知道系统中发生了什么才能得到这种结果。谢谢!
enedebe 2012年

手动运行logrotate是否会给出任何错误?如果有错误,则需要在conf文件或/etc/logrotate.d/apache(或apache2)中进行修复。
johnshen64'4

4
您可以使用-ddebug标志和-fforce标志来查看logrotate试图执行的操作。-d禁用操作,但打印的消息仍会声明他们正在更改内容。
David Lord

运行时/usr/sbin/logrotate /etc/logrotate.conf,我会添加-v以查看详细日志。
丹尼斯·哥洛马佐夫


5

另一个不错的地方是/var/log/messages在CentOS 上查找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


2

如果您是logrotate从cron 运行,而不是重定向输出,则无论运行cron作业的ID是什么,输出都会转到电子邮件中。我将输出重定向到日志文件。

例如:

25 3 * * 7 /usr/sbin/logrotate -s /home/user/conf/mwarelogrotate.state 
/home/user/conf/mwarelogrotate.conf >> /home/user/logs/logrotate.log 2>&1

1

检查/etc/logrotate.conf可能会影响通过以下方式配置的任务的全局配置设置/etc/logrotate.d/


0

当logrotate不旋转日志或进入失败状态时,最好在调试模式下手动运行logorate以查看其列出了哪些错误,如下所示:

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

此命令测试文件位于中的所有服务的循环日志/etc/logrotate.d。如果它列出了错误(例如由重复的日志条目引起的错误),您将知道为什么logrotate存在问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.