48

I have logrotate running in an EC2 AWS machine rotating Apache logs. Once packed, Apache logs are saved into AWS S3 via s3fs. The problem is that I recently noticed that I didn't have logs rotated. In S3 I have old logs from day 48->60 but the 1->47 doesn't appear.

My question is: Where does logrotate save its own log? It's possible that I have some kind of problem with s3fs, but I need to know before I do anything. I tried to find somewhere the logs but I couldn't find it out.

Any idea?

6 Answers 6

35

logrotate does not log anything by default. normally it should be in your cron somewhere, for instance:

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

You can either run that manually to see what is wrong, or redirect the logrotate output to a file in the above cron to see what happened next day.

Likely somewhere the config is incorrect and caused the logrotate run to break.

6
  • 3
    +1 on running logrotate manually to see what's wrong
    – cjc
    Apr 19, 2012 at 12:20
  • thanks for the answer, but what I really want to know what has happened in my system to get this kind result. Thank's!
    – enedebe
    Apr 19, 2012 at 21:26
  • does manually run logrotate give any errors? if there are errors, you need to fix them in the conf file or /etc/logrotate.d/apache (or apache2).
    – johnshen64
    Apr 19, 2012 at 21:50
  • 7
    You can use the -d debug flag and the -f force flag to see exactly what logrotate is attempting to do. -d disables action but the printed messages will still claim they're changing things.
    – David Lord
    Jul 23, 2015 at 3:44
  • 1
    When running /usr/sbin/logrotate /etc/logrotate.conf, I'd add -v to see the detailed log. Nov 18, 2019 at 13:25
22

The only thing that logrotate records normally is in cat /var/lib/logrotate/status.

This is taken from https://serverfault.com/a/518134/266525

2
  • 1
    It turns out there are differences in the actual path depending on the distribution and version used. Check the linked serverfault answer and it's comments for details. Oct 1, 2020 at 12:46
  • 4
    /var/lib/logrotate/logrotate.status on my CentOS 7 system.
    – rinogo
    Oct 2, 2020 at 18:25
9

Another good place to look is /var/log/messages on CentOS for errors such as this from the cron.daily /etc/cron.daily/logrotate

logrotate: ALERT exited abnormally with [1]

You can also run in debug mode manually and check for errors:

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

Source: https://access.redhat.com/solutions/32831

4

If you're running logrotate from cron and not redirecting the output, the output, if there is any, will go to email for whichever ID is running the cron job. I redirect my output to a log file.

For example:

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

When logrotate doesn't rotate logs or enters failed state, it's a good idea to run logorate manually in debug mode to see what errors it lists, like this:

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

This command tests rotating the logs for all the services that have files located in /etc/logrotate.d. If it lists errors (such as errors caused by duplicate log entries), you'll know why logrotate has problems.

1

Check /etc/logrotate.conf for global config settings that may be affecting tasks configured through /etc/logrotate.d/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.