Come configuro logrotate per non cancellare i miei file di registro dopo la rotazione?


24

C'è un modo per farlo?


Puoi dirci perché vuoi farlo? Forse ci sono altre opzioni ...
Chmeee,

Nel mio caso sarebbe bello scaricare grandi vecchi registri nella memoria esterna e conservarne di nuovi sul server. Quindi ho bisogno di un semplice spaccalegna.
sekrett,

2
Il mio caso d'uso per questa configurazione è: voglio mantenere il mio registro per sempre, poiché potrei averne bisogno per scopi di controllo, MA voglio che i miei file vengano ruotati in modo che il registro corrente non cresca troppo grande e quelli ruotati possano essere compresso: in caso contrario, il backup dei registri su un server esterno è troppo difficile e anche il controllo dei file diventa troppo lento.
Rudolf Mayer,

Risposte:


32

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.


6
Quando l'ho fatto su un lampone pi (raspian), lo faceva congelare ogni notte. Una volta ho seguito i processi in esecuzione e ho aperto i file utilizzando la console seriale e ho scoperto che tenta di rinominare 100000 di file inesistenti. Quindi attenzione. Purtroppo non ho informazioni più dettagliate
Christian,

0

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.


È lo stesso del commento qui sotto ( serverfault.com/a/50186/275485 ) e non fornisce una risposta corretta; copia non significa che i tuoi vecchi file che sono stati ruotati non vengono eliminati ..
Rudolf Mayer

-3

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.


2
Supponendo che desideri che i file vengano "ruotati" ma che non cancellano mai i vecchi file, questo non lo farà. L'aggiunta di "copia" nella stanza di configurazione significa che il file originale continuerà a crescere per sempre, ma alla fine le copie più vecchie del file verranno eliminate. A quanto ho capito, "copia" è utile soprattutto quando si prevede che un altro processo tronci / elimini l'originale.
Insyte,

Esatto, che è quello che pensavo stesse chiedendo. Ha specificamente chiesto un modo per "non eliminare i miei file di registro", non un modo per "non eliminare i vecchi archivi dei miei file di registro". Immagino che dovrei essere più diffidente nei confronti di domande che riguardano solo un argomento e nessun corpo ;-)
Justin Ellison,

2
La frase "dopo la rotazione" fornisce un indizio.
In pausa fino a nuovo avviso.

4
"Mettendo da parte il punto che la rotazione comporta la cancellazione ..." Non necessariamente. La rotazione può comportare solo la compressione dei vecchi registri e la loro conservazione, ed è ciò che sembra ponga la domanda.
reflexiv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.