logrotate não está funcionando como esperado com meu log personalizado

1

Eu liguei o log geral do mysql, e como ele estava crescendo muito rápido eu pensei em usar logrotate diariamente, então eu criei o log ontem por volta das 2pm e é assim que o log se parece:

-rw-rw----  1 mysql adm  1751348 Jun 16 11:55 general.log

Eu adicionei uma nova regra para logrotate que se parece com isso:

/var/log/mysql/general.log {
daily
rotate 12
dateext
compress
missingok
notifempty
create 640 mysql adm
postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

E de acordo com o / etc / crontab, ele funciona às 6:25 da manhã, mas não rodou meu log ontem

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

a saída do logrotate em execução --dry-run:

logrotate -d general
reading config file general
reading config info for /var/log/mysql/general.log 

Handling 1 logs

rotating pattern: /var/log/mysql/general.log  after 1 days (12 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/mysql/general.log
  log does not need rotating
not running postrotate script, since no logs were rotated

O que mais eu preciso fazer para girar meu registro?

    
por VaTo 16.06.2016 / 20:20

1 resposta

0

A rotação do log provavelmente deve ser iniciada mais de uma vez por dia, provavelmente a cada hora. A decisão de realmente rodar os logs ou não deve ser deixada para o recurso de rotação de log ( logrotate no seu caso), não para cron .

Ao invocar logrotate uma vez a cada 24 horas, provavelmente ocorrerá o seguinte cenário:

  • cron inicia o trabalho de rotação de log em X (um tempo).
  • logrotate é iniciado, passa por sua lista de logs para girar e termina em X + n ( n segundos depois).

24 horas depois:

  • cron inicia o trabalho de rotação de log em Y ( X + 24h).
  • logrotate , se se importar com segundos, percebe que os logs que foram rotacionados na rotação do log anterior ainda não estão totalmente 24 horas (há uma discrepância de 1 a n segundos) e os ignora.
por 17.06.2016 / 08:37