O que programa logrotate?

11

Estou trabalhando no programa que cria um arquivo de log grande.

Eu quero lidar com isso com logrotate.

Esta é uma configuração que eu coloquei em /etc/logrotate.d/ :

/var/log/myproject.log  {
 hourly
 maxsize 1
 rotate 6
 missingok
 notifempty
 compress
 nocreate
 copytruncate
 su www-data www-data 
}

( /var/log/myproject.log tem dono www-data )

Comandos

sudo logrotate -vf /etc/logrotate.conf

e

sudo logrotate -vf /etc/logrotate.d/myproject

gire o log corretamente.

No entanto, depois de chamá-los, /etc/cron.hourly está vazio. O que significa que logrotate não é chamado de hora em hora.

  1. Tenho a garantia de ter logrotate script em /etc/cron.daily ?

  2. O script verifica a frequência de atualização dos arquivos de log. Ou seja se eu tiver logrotate script em /etc/cron.daily e para algum arquivo de log X em /etc/logrotate.d/ eu defino weekly configuração, X será rotacionado diariamente ou semanalmente?

  3. Posso copiar e colar /etc/cron.daily/logrotate para /etc/cron.hourly/ ? Posso recortar e colar?

  4. Devo adicionar o arquivo 0anacron a /etc/cron.hourly/ ?

  5. Devo fazer outra coisa para habilitar o registro por hora?

por user2136963 28.11.2014 / 21:21

1 resposta

7
  1. Não.

  2. Em man logrotate :

    Each  configuration  file  can  set  global  options (local definitions
    override global ones, and later definitions override earlier ones)
    

    Então, sim.

  3. Mais uma vez, na página de manual:

    hourly Log files are rotated every hour. Note that usually logrotate is
           configured  to  be  run  by  cron daily. You have to change this
           configuration and run logrotate hourly  to  be  able  to  really
           rotate logs hourly.
    

    Então, sim, você deve mover o script. Inspecionando o script cron.daily no meu sistema, acho que movê-lo deve funcionar bem.

por muru 29.11.2014 / 00:28