No momento, estamos atualizando do Ubuntu 12.04 LTS para o 14.04 LTS em nossos servidores de aplicativos Ruby on Rails e notamos que os arquivos de log não estão mais sendo rotacionados.
Em ambas as máquinas, temos um arquivo /var/app-name/config/logrotate
de propriedade de nosso usuário unix deployer
, que contém um arquivo logrotate válido, como segue:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Isso é então vinculado a um erro no diretório /etc/logrotate.d/
como app-name
Em nosso servidor Ubuntu 12.04, temos o logrotate 3.7.8, que roda muito bem. Ele vai para o diretório var/app-name/log/
e rotaciona todos os arquivos de log
Mas no servidor Ubuntu 14.04 nós temos o logrotate 3.8.7 que não roda os arquivos de log para a nossa aplicação.
Quando eu depurar isso via sudo logrotate -d -f /etc/logrotate/.conf
, recebo a seguinte saída:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Perseguindo isso no código, parece que essa alteração foi adicionada para o fluxo de versão 3.8.x: link
Se eu alterar a propriedade do arquivo linkado como symlinked para /var/app-name/config/logrotate
to root
, ele começará a funcionar novamente. Mas, como esse arquivo faz parte do meu aplicativo e é criado pela estrutura de implantação do capistrano que usamos nesse estado, prefiro não alterar a propriedade, quando costumava funcionar muito bem.
Então, os arquivos de configuração com links simbólicos são recomendados / suportados pelo logrotate?
Em caso afirmativo, se a recusa em usar o meu arquivo (de propriedade de deployer
), que é linkado como symlink no diretório /etc/logrotate.d
, seja visto como um bug?
Ou existe outra abordagem recomendada para a rotação de logs específica de aplicativos?
(também perguntado em superusuário StackExchange )
Tags permissions logrotate ubuntu