logrotate não está funcionando

3

Eu quero configurar o logrotate diário para o arquivo de log catalina.out do meu servidor Tomcat, mas ele não está funcionando - eu não vi os arquivos de log rotacionados criados. Para solucionar problemas, eu corri logrotate -d /etc/logrotate.conf e obtive o seguinte:

rotating pattern: /usr/local/tomcat/logs/catalina.out  5242880 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /usr/local/tomcat/logs/catalina.out
  log needs rotating
rotating log /usr/local/tomcat/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20151223'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
copying /usr/local/tomcat/logs/catalina.out to /usr/local/tomcat/logs/catalina.out-20151223
truncating /usr/local/tomcat/logs/catalina.out
compressing log with: /bin/gzip 

Parece que tudo está funcionando sem nenhum erro. No entanto, não há resultados:

[root@gec logrotate.d]# ls -lrth /usr/local/tomcat/logs/cata*
-rw-r--r-- 1 root root  398 Dec  4 17:48 /usr/local/tomcat/logs/catalina.2015-12-04.log
-rw-r--r-- 1 root root 109M Dec 23 17:21 /usr/local/tomcat/logs/catalina.out 

Meu /etc/logrotate.conf :

daily

rotate 7

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d 

Meu /etc/logrotate.d/tomcat :

/usr/local/tomcat/logs/catalina.out {
    copytruncate
    daily
    rotate 7
    compress
    missingok
    size 5M
}  

O que está errado?

Atualizações:

Curiosamente, a execução logrotate -f /etc/logrotate.conf cria os arquivos gzip de rotação!

[root@gec logrotate.d]# ls -lrth /usr/local/tomcat/logs/cata*
-rw-r--r-- 1 root root  398 Dec  4 17:48 /usr/local/tomcat/logs/catalina.2015-12-04.log
-rw-r--r-- 1 root root 1.1M Dec 23 17:26 /usr/local/tomcat/logs/catalina.out-20151223.gz
-rw-r--r-- 1 root root 109K Dec 23 17:27 /usr/local/tomcat/logs/catalina.out

No entanto, como sei se o cron job diário funcionará?

    
por ericn 23.12.2015 / 10:31

2 respostas

6

Você está executando o logrotate -d /etc/logrotate.conf com o argumento -d .

O argumento -d é o modo de depuração, você pode dizer "executar a seco". Ele só lhe dará informações se o logrotate funcionar, mas não irá girar os logs.

O logrotate -f funcionou desde que o argumento -f especifica logrotate para forçar o logrotate.

Citando o manual de logrotate :

  • -d, --debug

    Turns on debug mode and implies -v. In debug mode, no changes will be made to the logs or to the logrotate state file.

  • -f, --force Tells logrotate to force the rotation, even if it doesn't think this is necessary. Sometimes this is useful after adding new
    entries to a logrotate config file, or if old log files have been
    removed by hand, as the new files will be created, and logging
    will continue correctly.

Se o logrotate -d /etc/logrotate.conf deu a você a saída de que o log será girado e compactado, ele irá rotacioná-lo quando o logrotate passar pelo seu arquivo de configuração.

    
por 23.12.2015 / 13:43
0

Em /etc/logrotate.d/tomcat, tente notifempty

    
por 23.12.2015 / 12:16

Tags