In che modo logrotate gestisce i file aperti? Logrotate può ruotare i file aperti da un processo?
In che modo logrotate gestisce i file aperti? Logrotate può ruotare i file aperti da un processo?
Risposte:
Per quelle applicazioni che non accettano i segnali da logrotate come descritto da Rory, uso un paio di metodi.
La decisione su quale utilizzare dipende dalla dimensione dei file di registro e dalla necessità di registri continui. Sarà un'analisi del rischio da parte tua. Tuttavia, per fare un esempio, utilizzo un riavvio post-rotazione su alcuni registri in cui dovrei effettivamente utilizzare un copia-tronchi. Tuttavia, i file sono spesso diversi concerti e la copia potrebbe richiedere un tempo abbastanza lungo che è preferibile perdere un secondo o due ogni notte.
Sembra che potrei desiderare quanto segue, ma ancora interessato all'esperienza di chiunque sull'argomento:
copytruncate
Truncate the original log file to zero size in place after cre‐
ating a copy, instead of moving the old log file and optionally
creating a new one.
logrotate invierà il processo corretto al processo per comunicargli di riaprire i file di registro. Funziona fuori dalla scatola per cose come apache o mysql.
Puoi vederlo nello script postrotate per apache. Se hai il tuo demone e vuoi che logrotate funzioni con esso, assicurati che ascolti un certo segnale e riapri i file di registro.
Se non è possibile modificare il programma, è possibile vedere se il daemon ha un modo per scaricare automaticamente i registri. Oppure aggiungi un prerotato che arresta il server e un postrotate che lo riavvia.