Como falhar no logrotate

Se você for como eu, já nomeou seus arquivos de log httpd com todos os tipos de coisas malucas. Como mysite.com.access e mysite.com.error . E, se você também for como eu, você tem uma pequena entrada agradável em /etc/logrotate.d para limpar as coisas.

/var/log/httpd/* {
weekly

rotate 5

postrotate

/usr/sbin/apachectl -k graceful

endscript

}

Claro, esta entrada está errada, errada, errada! . Primeiro, você vai acabar tendo O ^ n logs, já que cada roatation terminará com um mysite.com.access.1 criado, então esse mysite.com.access.1 será girado novamente e um mysite. com.access.1.1 será criado.

Além disso, não há uma diretiva sharedscripts , então o comando postrotate será executado após cada rotação de log bem-sucedida. Em breve, você estará reiniciando o apache O ^ n vezes toda semana no domingo!

Aqui está como não girar aqueles *arquivos .1 incômodos e usar a diretiva sharedscripts para que o comando postrotate só seja executado quando o logrotate terminar com a diretiva.

/var/log/httpd/*[!0-9] {
sharedscripts

weekly

rotate 5

postrotate

/usr/sbin/apachectl -k graceful

endscript

}

Fique ligado no meu próximo livro, Como causar problemas bizarros com serviços mal configurados – para hackers!