How can I monitor what logrotate is doing in Ubuntu? Can the activity of logrotate be monitored?
5 Answers
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:
-
24You'll find this file as
/var/lib/logrotate.status
on Red Hat systems. Jun 24, 2013 at 16:07 -
1here's a complete guide to troubleshooting logrotate in Red Hat systems: access.redhat.com/solutions/32831– GaiaFeb 23, 2015 at 19:17
-
1Considering 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 as0 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.– AbdullJun 5, 2018 at 12:06 -
5In even more recent RedHat systems (at least in RHEL 7.6) the status file is now at
/var/lib/logrotate/logrotate.status
.– RichlvMay 31, 2019 at 15:27
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.
-
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?– user56548Oct 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– user56548Oct 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.– user56548Oct 10, 2010 at 10:39
In Suse Linux distros is like this:
cat /var/lib/logrotate.status
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
.
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.
-
Probably, you meant
rotate 365
orweekly
. Daily rotation withrotate 52
will keep 52 days of logs, obviously.– temotoJul 18, 2011 at 13:15 -