Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

for some reason the old log files are not deleted. Example with apache

What the conf file says:

$ cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    rotate 2
    create 640 root adm
            /etc/init.d/apache2 reload > /dev/null

The (cropped) content of the log folder:

# ls /var/log/apache2/
access.log       error.log.26.gz                other_vhosts_access.log.20.gz  access-ssl.log.14.gz
access.log.1     error.log.27.gz                other_vhosts_access.log.21.gz  access-ssl.log.15.gz
access.log.2.gz  error.log.28.gz                other_vhosts_access.log.22.gz  access-ssl.log.16.gz
access.log.3.gz  error.log.2.gz                 other_vhosts_access.log.23.gz  access-ssl.log.17.gz

Actually there are lots of them:

# ls /var/log/apache2/ | wc -l

The logrotate command with --verbose gives me this:

# /usr/sbin/logrotate --verbose  /etc/logrotate.conf
reading config file apache2
reading config info for /var/log/apache2/*.log
rotating pattern: /var/log/apache2/*.log  weekly (2 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/access.log
  log does not need rotating
considering log /var/log/apache2/error.log
  log does not need rotating
considering log /var/log/apache2/other_vhosts_access.log
  log does not need rotating
considering log /var/log/apache2/pbpdhg-ssl.log
  log does not need rotating
not running postrotate script, since no logs were rotated

What is wrong here ? The logs are rotated but not removed? What am I missing?

share|improve this question

1 Answer 1

up vote 9 down vote accepted

your configuration says: rotate 2

that means log files are rotated 2 times before being removed, so logrotate only cares about 2 files.

my guess is that the configuration was changed at some point, because previously more log files were kept, maybe it was something like rotate 28. these older files you have to remove manually.

share|improve this answer
I cannot prove the answer so I guess it's right. However I don't understand why access.log.3.gz is still present. –  SamK Apr 10 '12 at 8:39
Because rotate 2 only handles 2 files, i.e., .1.gz and .2.gz, and ignores other files. –  johnshen64 Apr 10 '12 at 13:15
I've changed the rotate 365 to rotate 90, and the access.log.90.gz is the latest changed so far. The access.log.91.gz has been removed (as logrotate keeps only 90), but not the > 91. So johnshen64 is right, you have to remove anything > 2. –  Yvan Feb 19 at 11:05
Here's a tip on how to deal with this automatically, i.e. via config management on many servers: –  Martijn Heemels May 27 at 13:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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