如何监控 logrotate 正在做什么?

65 ubuntu logrotate cron

如何在 Ubuntu 中监控 logrotate 正在做什么?可以监控logrotate的活动吗?

小智 73

cat /var/lib/logrotate/status 
Run Code Online (Sandbox Code Playgroud)

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

取自:

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

  • 你会在 Red Hat 系统上找到这个文件作为 `/var/lib/logrotate.status`。 (21认同)
  • 在更新的 RedHat 系统中(至少在 RHEL 7.6 中),状态文件现在位于 `/var/lib/logrotate/logrotate.status` 。 (4认同)
  • 考虑到 Ubuntu,`cat /var/lib/logrotate/status` 仅显示 [由 root 用户启动的 logrotate 活动](https://unix.stackexchange.com/a/169029/20230)。其他用户的 cronjobs 可能会触发他们自己的 logrotate 活动,例如,当他们的 crontab 包含诸如 `0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate- 之类的条目时状态`。该 logrotate 活动将写入文件“$HOME/logrotate/logrotate-state”,其中“$HOME”是该用户的主目录。 (2认同)

ker*_*nic 16

您可以尝试在调试或详细模式下运行 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.
Run Code Online (Sandbox Code Playgroud)

  • /usr/sbin/logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log (2认同)

Wat*_*ker 9

在 Suse Linux 发行版中是这样的:

cat /var/lib/logrotate.status
Run Code Online (Sandbox Code Playgroud)


Bre*_*bad 5

您可以检查 的设置logrotate,通常在/etc/logrotate.conf.

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

例如对于 nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52
Run Code Online (Sandbox Code Playgroud)

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


Bil*_*hor 5

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

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

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