如何监视logrotate在做什么?


51

如何监视Ubuntu中logrotate的功能?可以监视logrotate的活动吗?


好吧,您可以查看该进程打开了哪些文件描述符...也许尝试解释您遇到的确切问题?您是否要调试自己的脚本?默认/第三方脚本的性能?
休伯特·卡里奥

Answers:


55
cat /var/lib/logrotate/status 

要验证特定日志是否确实在旋转,并检查其旋转的最后日期和时间,请检查/ var / lib / logrotate / status文件。这是一个格式整齐的文件,其中包含日志文件名和上次旋转日期。

取自:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10


16
您会/var/lib/logrotate.status在Red Hat系统上找到该文件。
迈克尔·汉普顿

1
这是对Red Hat系统中的logrotate进行故障排除的完整指南:access.redhat.com/solutions/32831
Gaia

考虑到Ubuntu,cat /var/lib/logrotate/status 仅显示root用户启动的logrotate活动。其他用户的cronjob可能会触发他们自己的logrotate活动,例如,当他们的crontab包含诸如的条目时0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state。这logrotate的活动将被写入文件$HOME/logrotate/logrotate-state,与$HOME作为该用户的主目录。
Abdull

在最近的RedHat系统中(至少在RHEL 7.6中),状态文件现在位于/var/lib/logrotate/logrotate.status
Richlv

13

您可以尝试以调试或详细模式运行logrotate:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.

当logrotate作为cron启动时,这是否有帮助?我的意思是有可能将logrotate的行为记录到日志文件中吗?

2
/ usr / sbin / logrotate -v /etc/logrotate.conf&> /var/log/logrotate.log
kernelpanic 2010年

sudo logrotate -v /etc/logrotate.conf&> /var/log/logrotate.log bash:/var/log/logrotate.log:权限被拒绝

1
@dude:如果你想这样做,在命令行和你得到的错误,你需要做的是这样的:sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null(请确保您有-a)。
丹尼斯·威廉姆森

@丹尼斯,当我尝试我虽然创建logrotate.log,但它具有0KB,并且该过程不会在终端处停止,并以闪烁的光标等待。


5

基于配置文件(/etc/logrotate.conf)和/或目录(/etc/logrotate.d),各种日志以各种频率旋转。名称可能在不同的发行版本上有所不同。该配置可以指定旋转之前和/或之后的动作。轮换文件的名称和上次轮换日期位于状态文件(/ var / lib / logrotate / state)中。

Logrotate没有日志记录功能。它启动的重新加载/重新启动操作将根据正在执行的程序的日志记录。

最简单的方法是编辑/etc/cron.daily/logrotate以包含该-v选项。有关logrotate配置和选项的详细信息,可通过以下命令找到man logrotate


3

杜德(Dude),您logrotate通常可以在中检查的设置/etc/logrotate.conf

现代发行版logrotate/etc/logrotate.d目录中具有特定的配置文件。

例如 nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

该文件将保留52周(一年)。该轮换是每周一次。


注意:user56548以前是“ Dude”

在此处输入图片说明


您的意思可能是rotate 365weeklyrotate 52显然,每天轮换可保留52天的日志。
temoto 2011年

@temoto谢谢,实际上是weekly
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.