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.