Rotacionando um subconjunto de logs com o Logrotate

2

Eu tenho vários arquivos em /var/log/myapp/ que terminam em .log . Então eu criei um

/var/log/myapp/*.log {
  daily
  create 644
  rotate 90
  compress
  missingok
}

E isso funciona perfeitamente bem. Eu tenho vários tipos de log diferentes aqui e quero alterar a retenção em apenas alguns dos logs de acesso ( access_log_.log ) para ter uma retenção de apenas 45 dias. Como faço para separar esses dois e mudar o tempo de retenção? Se eu acrescentar um novo bloco como este:

/var/log/myapp/access_log_*.log {
  daily
  create 644
  rotate 45
  compress
  missingok
}

A primeira vez que faz isso é a rotação normal do log e, em seguida, o log rotaciona essas rotações, criando um início enorme como bagunça. Qual é a melhor maneira de fazer isso?

    
por Daniel Hood 19.07.2016 / 07:27

2 respostas

1

Especifique padrões de glob mais precisos ou coloque os diferentes logs de agendamento de rotação em diretórios separados. A linguagem de configuração do Logrotate é muito, muito limitada.

    
por 19.07.2016 / 07:45
1

Você terá que garantir que as expansões do nome de registro não se incluam.

Em primeiro lugar, eu tentaria renomear o access_log _ *. log, talvez access_log _ *. txt (ou mesmo apenas remover o sufixo) ou colocá-los em um diretório diferente.

Não esqueça que você pode fornecer uma lista de logs para que o logrotate atue, em vez de uma expressão regular.

    
por 19.07.2016 / 07:47

Tags