Ho un cronjob che esegue alcuni script Python e generano un enorme file di registro. Come posso evitare che diventino così grandi? Sarebbe perfetto se il file fosse cancellato una volta raggiunta una certa dimensione. Perché ogni pochi giorni, il file ora è di 50 MB, ma diventa molto più grande e impiega un'eternità per scaricare e analizzare un bug su una connessione Internet lenta. Voglio solo vedere le ultime 1000 righe per vedere dove lo script è andato storto.
So che potrei programmare qualcosa per farlo, ma mi chiedevo solo se Linux avesse qualcosa che non sapevo. Immagino che i file di registro di grandi dimensioni siano un problema comune. Grazie.
Risposta accettata:
Di solito dovresti registrare solo l'attività che ti interessa e dovresti configurare il programma in modo che sia meno dettagliato, se possibile.
Come suggerito, utilizzando logrotate è il solito modo di gestire i file di registro. Ma invece di aggiungere contenuto a /etc/logrotate.conf
dovresti aggiungere il tuo lavoro a /etc/logrotate.d/
, altrimenti dovresti esaminare più differenze di file di configurazione durante gli aggiornamenti di rilascio.
Ecco un esempio che ho creato per uno script php:
/var/log/some-php-app/*.log {
daily
rotate 10
delaycompress
compress
notifempty
missingok
}
/var/log/some-php-app/*.log
– È il percorso in cui si trovano i file di registro e il relativo nome. Come puoi vedere, puoi anche utilizzare i caratteri jolly per applicare la regola a più di un file di log.- ogni giorno – Ruota i file di registro ogni giorno. Alternative:oraria, settimanale, mensile, annuale, maxsize, maxage
- ruota conta – I file vengono conteggiati a rotazione prima di essere rimossi o spediti all'indirizzo specificato in una direttiva di posta.
- compressione del ritardo – Rimanda la compressione del file di registro precedente al ciclo di rotazione successivo.
- comprimi – Comprime le vecchie versioni dei file di registro con gzip. Puoi usare
zless
invece diless
per visualizzare i file. - notificato – Non ruota il registro se è vuoto.
- manca bene – Passa al processo di rotazione successivo senza emettere un messaggio di errore, quando il file di registro è mancante.
Dai un'occhiata alla manpage di logrotate per ulteriori opzioni.