Como alterar o dia da semana O Logrotate muda o arquivo quando configurado semanalmente?

1

Eu tenho a seguinte configuração que gira todo o conteúdo da pasta do google semanalmente:

/var/log/google/*.log {
        create 0777 www-data www-data
        weekly
        missingok
        rotate 90
        compress
        delaycompress
        notifempty
        olddir /var/log/google/old
}

Agora a coisa é que faz a rotação toda segunda-feira de manhã, enquanto eu quero fazer a rotação semanal toda quarta-feira.

Eu estava pensando em alterar a seguinte entrada no crontab:

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

Mas estou confuso se isso funcionar, pois consegui encontrar logrotate em /etc/cron.daily e não em /etc/cron.weekly .

É possível alterar arquivos na quarta-feira do que na segunda-feira? Se sim, então como?

    
por dragosrsupercool 30.11.2015 / 13:35

1 resposta

0

Alterar o tempo de execução de tarefas cron semanais não ajudará, pelas razões que você declarou.

Observe o que a página de manual de logrotate diz sobre weekly rotação:

   weekly Log  files  are  rotated if the current weekday is less than the
          weekday of the last rotation or if more than a week  has  passed
          since  the  last rotation. This is normally the same as rotating
          logs on the first day of  the  week,  but  it  works  better  if
          logrotate is not run every night.

É por isso que tende a girar às segundas-feiras.

O que você pode fazer é executar uma instância especial e separada de logrotate às quartas-feiras, que só é executada para os registros do Google. Por exemplo, crie /etc/logrotate-google.conf , contendo a configuração que você especificou, e crie uma tarefa cron executada às quartas-feiras (como root, use /etc/crontab ou /etc/cron.d ):

46 6 * * 3 root logrotate /etc/logrotate-google.conf
    
por muru 30.11.2015 / 14:17