Actualmente estamos actualizando Ubuntu 12.04 LTS a 14.04 LTS en nuestros servidores de aplicaciones ruby on rails, y hemos notado que los archivos de registro ya no están girando.
En ambas máquinas tenemos un archivo /var/app-name/config/logrotate
propiedad de nuestro usuario de Unix deployer
que contiene un archivo logrotate válido de la siguiente manera:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Esto luego se enlaza simbólicamente al /etc/logrotate.d/
directorio comoapp-name
En nuestro servidor Ubuntu 12.04 tenemos logrotate 3.7.8 que funciona bien. Entra en el var/app-name/log/
directorio y gira todos los archivos de registro
Pero en el servidor Ubuntu 14.04 tenemos logrotate 3.8.7 que no rota los archivos de registro para nuestra aplicación.
Cuando depuro esto a través sudo logrotate -d -f /etc/logrotate/.conf
, obtengo el siguiente resultado:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Persiguiendo esto en el código, parece que este cambio se agregó para la secuencia de lanzamiento 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Si cambio la propiedad del archivo vinculado /var/app-name/config/logrotate
a, root
entonces comienza a funcionar nuevamente. Pero dado que este archivo es parte de mi aplicación, y creado por el marco de implementación de capistrano que usamos en este estado, prefiero no tener que alterar su propiedad, cuando solía funcionar bien.
Entonces, ¿los archivos de configuración con enlaces simbólicos son recomendados / admitidos por logrotate?
Y si es así, ¿debería verse como un error el deployer
rechazar el uso de mi archivo (propiedad de ) que está enlazado en el /etc/logrotate.d
directorio?
¿O hay otro enfoque recomendado para la rotación de registros específicos de la aplicación?
(también preguntado en unix StackExchange )