74

How can I monitor what logrotate is doing in Ubuntu? Can the activity of logrotate be monitored?

1
  • well you could go and see which file descriptors the process has opened... Maybe try to explain what exact problem you have? Are you trying to debug your own scripts? Performance of default/3rd party scripts? Oct 9, 2010 at 15:31

5 Answers 5

85
cat /var/lib/logrotate/status 

To verify if a particular log is indeed rotating or not and to check the last date and time of its rotation, check the /var/lib/logrotate/status file. This is a neatly formatted file that contains the log file name and the date on which it was last rotated.

Taken From:

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

4
  • 24
    You'll find this file as /var/lib/logrotate.status on Red Hat systems. Jun 24, 2013 at 16:07
  • 1
    here's a complete guide to troubleshooting logrotate in Red Hat systems: access.redhat.com/solutions/32831
    – Gaia
    Feb 23, 2015 at 19:17
  • 2
    Considering Ubuntu, cat /var/lib/logrotate/status only shows logrotate activity initiated by the root user. Other users' cronjobs may trigger their own logrotate activity, e.g. when their crontab includes an entry such as 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. That logrotate activity would be written to file $HOME/logrotate/logrotate-state, with $HOME being that user's home directory.
    – Abdull
    Jun 5, 2018 at 12:06
  • 5
    In even more recent RedHat systems (at least in RHEL 7.6) the status file is now at /var/lib/logrotate/logrotate.status .
    – Richlv
    May 31, 2019 at 15:27
19

You can try running logrotate in debug or verbose mode:

-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.
6
  • Does this help this when logrotate is started as cron? I mean is there a possibility to log the behaviour of logrotate to a logfile?
    – user56548
    Oct 9, 2010 at 15:45
  • 2
    /usr/sbin/logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log Oct 9, 2010 at 15:55
  • sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log: Permission denied
    – user56548
    Oct 9, 2010 at 16:01
  • 1
    @dude: If you're trying to do that from the command line and you're getting that error, you'll need to do it like this: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null (make sure you have the -a). Oct 9, 2010 at 23:53
  • @Dennis when i try that i although creates the logrotate.log but it has 0KB and the process doesn't stop at the terminal and and waits with a blinking cursor.
    – user56548
    Oct 10, 2010 at 10:39
10

In Suse Linux distros is like this:

cat /var/lib/logrotate.status
1
  • AWS AMI Linux has same logrotate's status structure Oct 22, 2015 at 14:45
5

Various logs are rotated on various frequencies based on the configuration file (/etc/logrotate.conf) and/or directory (/etc/logrotate.d). Names may vary on different distributions. The configuration may specify pre and/or post rotation actions. Names of rotated files and last rotation date are in the state file (/var/lib/logrotate/state).

Logrotate does not have logging facilities. Reload/restart actions it initiates will be logged according to the logging for the program being acted on.

The easiest way to do that would be to edit /etc/cron.daily/logrotate to include the -v option. Detail about logrotate configuration and options can be found with the command man logrotate.

4

You can check the settings of logrotate, usually in /etc/logrotate.conf.

Modern distros have a specific logrotate configuration file in the /etc/logrotate.d directory.

e.g. for nginx

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

It will keep the file for 52 weeks (a year). The rotation is weekly.

2
  • Probably, you meant rotate 365 or weekly. Daily rotation with rotate 52 will keep 52 days of logs, obviously.
    – temoto
    Jul 18, 2011 at 13:15
  • @temoto thanks, it was actually weekly
    – Déjà vu
    Jul 19, 2011 at 4:23

You must log in to answer this question.