Attualmente stiamo eseguendo l'aggiornamento da Ubuntu 12.04 LTS a 14.04 LTS sui nostri server applicazioni ruby on rails e abbiamo notato che i file di registro non ruotano più.
Su entrambe le macchine abbiamo un file di /var/app-name/config/logrotate
proprietà del nostro utente unix deployer
che contiene un file logrotate valido come segue:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Questo viene quindi collegato alla /etc/logrotate.d/
directory comeapp-name
Sul nostro server Ubuntu 12.04 abbiamo logrotate 3.7.8 che funziona perfettamente. Va nella var/app-name/log/
directory e ruota tutti i file di registro
Ma sul server Ubuntu 14.04 abbiamo logrotate 3.8.7 che non ruota i file di registro per la nostra applicazione.
Quando eseguo il debug tramite sudo logrotate -d -f /etc/logrotate/.conf
ottengo il seguente output:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Inseguendo questo nel codice, sembra che questa modifica sia stata aggiunta per il flusso di rilascio 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Se cambio la proprietà del file collegato a symlink /var/app-name/config/logrotate
a, root
allora ricomincia a funzionare. Ma dato che questo file fa parte della mia applicazione e creato dal framework di distribuzione capistrano che utilizziamo in questo stato, preferirei non dover alterarne la proprietà, quando funzionava bene.
Quindi i file di configurazione con collegamento simbolico sono consigliati / supportati da logrotate?
E se è così, dovrebbe essere il rifiuto di usare il mio file (di proprietà di deployer
) che è linkato nella /etc/logrotate.d
directory, essere visto come un bug?
Oppure esiste un altro approccio consigliato per la rotazione dei registri specifici dell'applicazione?
(richiesto anche su unix StackExchange )