Logrotate não remove logs antigos

12

por algum motivo, os arquivos de log antigos não são excluídos. Exemplo com o apache

O que o arquivo conf diz:

$ cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
    weekly
    missingok
    rotate 2
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
            /etc/init.d/apache2 reload > /dev/null
    endscript
}

O conteúdo (recortado) da pasta de log:

# 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
[...]

Na verdade, existem muitos deles:

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

O comando logrotate com --verbose me dá isto:

# /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
[...]

O que está errado aqui? Os logs são girados, mas não removidos? O que estou perdendo?

    
por SamK 05.04.2012 / 15:44

2 respostas

14

sua configuração diz: gire 2

isso significa que os arquivos de log são girados 2 vezes antes de serem removidos, então o logrotate só se importa com 2 arquivos.

meu palpite é que a configuração foi alterada em algum momento, porque anteriormente mais arquivos de log eram mantidos, talvez fosse algo como girar 28. esses arquivos mais antigos que você precisa remover manualmente.

    
por 05.04.2012 / 16:46
-3

Os logs com sufixo .gz não são considerados porque você especificou: / var / log / apache2 / *. log

Portanto, 2 .log e todos os arquivos .gz permanecem.

Para mudar isso coloque lá

/ var / log / apache2 / ** log * ou alguma expressão regular.

    
por 19.06.2016 / 16:07