C'è un modo per farlo?
C'è un modo per farlo?
Risposte:
Nel tuo logrotate.conf (o nel file logrotate.d equivalente), modifica la riga che dice "
rotate 10
(il tuo numero potrebbe essere diverso) a un numero più grande. Questo gli dirà di conservare quei giorni di log. Puoi farne 36500, che ti durerebbero 100 anni.
Ho cercato questo per rendere la rotazione dei backup del mio database giornaliera, settimanale e mensile; quindi ruoto il file ogni giorno ma mantengo il file per fare la rotazione settimanale e lo stesso per la rotazione annuale.
Usa l'opzione di copia. Dal manuale:
copy
copia Crea una copia del file di registro, ma non modifica affatto l'originale. Questa opzione può essere utilizzata, ad esempio, per creare un'istantanea del file di registro corrente o quando qualche altra utility deve troncare o analizzare il file. Quando viene utilizzata questa opzione, l'opzione di creazione non avrà alcun effetto, poiché il vecchio file di registro rimane in posizione.
Mettendo da parte il punto che la rotazione comporta la cancellazione ... ;-)
Sembra che puoi semplicemente aggiungere la parola 'copia' al file appropriato (probabilmente in /etc/logrotate.d). Ad esempio, uno script apache2 logrotate sarebbe simile al seguente:
/var/log/apache2/*.log { settimanalmente missingok ruota 52 comprimere delaycompress notifempty copia sharedscripts postrotate if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; poi /etc/init.d/apache2 ricaricare> / dev / null fi endscript }
Provalo e vedi se fa quello che vuoi.