logrotate não respeita o parâmetro rotate

0

Eu tenho tido alguns problemas com o logrotate, aparentemente não faz o que estou dizendo para fazer.

Ambiente:

  • Centos 6.4
  • logrotate 3.7.8

Meu arquivo /etc/logrotate.conf tem o seguinte:

# rotate log files weekly
daily

# keep 4 weeks worth of backlogs
rotate 30

# 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
compresscmd /usr/bin/bzip2
uncompresscmd /usr/bin/bunzip2
compressext .bz2

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

E o arquivo logrotate que estou tendo problemas é o seguinte (para o elasticsearch, localizado em /etc/logrotate.d/elasticsearch):

/var/log/elasticsearch/*.log {
    missingok
    notifempty
    copytruncate
    postrotate
        rm -rf /var/log/elasticsearch/*.log.$(date +%Y)*
    size 1k
    rotate 7
    daily
}

Primeiro, não está respeitando minha configuração rotate 7 , quando executo logrotate -d /etc/logrotate.conf , recebo uma linha dizendo:

rotating log /var/log/elasticsearch/gravity-es-prod02.log, log->rotateCount is 30

... e um monte de declarações dizendo que está girando 30 arquivos * .bz2 diferentes.

Em segundo lugar, continuo terminando com um arquivo de log chamado gravity-es-prod02.log.2015-12-01 (e todas as datas anteriores desde a minha última limpeza manual), apesar de não ter o dateext ativado. Eles também não são limpos, então adicionei a linha pós-rotação para limpá-la manualmente, mas aparentemente isso também não funciona corretamente.

EDITAR O arquivo cron que executa o script logrotate é bastante padrão:

#> cat /etc/cron.daily/logrotate 
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
    
por BrDaHa 02.12.2015 / 22:29

1 resposta

1

Encontrei um erro no seu script fornecido (missingcriptcript ausente):

postrotate
    rm -rf /var/log/elasticsearch/*.log.$(date +%Y)*
endscript

Acredito que essa parte falhe e de alguma forma aplique configurações globais para esse padrão de log.

    
por 03.12.2015 / 02:31