Newsgroup: it.comp.os.linux.sys
Titolo: Rotazione log

Ciao a tutti.
ho la necessita (causa mal progettazione del server) di ruotare i log
in un disco differente da quello dove risiedono.
Logrotate ha la funzione "olddir" che farebbe al caso mio, ma non
accetta directory poste su dischi fisici diversi.
Io avevo tamponato ruotando i log in locale e spostandoli giornalmente
a colpi di cron.
Però così facendo, il logrotate non trova mai il vecchio log ruotato e
di conseguenza non riesce a capire come rinominarlo. In sostanza: mi
genera sempre maillog.1.gz senza fare i giro (1, 2, 3, ... n)
Qualche soluzione?

 la volta successiva?
Esatto, però non volevo fare un touch per creare il file in posizione.
Il perchè non lo so, ma non mi sembrava una bella idea.
Però dato che l'abbiamo pensata in 2, allora farò cosi.

 in un disco differente da quello dove risiedono.
]zac[
So che può essere una rottura e che riavviare un server/servizi è sempre
fastidioso, ma non sarebbe meglio montare una nuova partizione in /var/log
con più spazio o fare di /var/log un link a una directory posta in una
partizione con più spazio (visto che è già mal progettato)? visto anche che
5 minuti di server down dovrebbero bastare per l'operazione.

 5 minuti di server down dovrebbero bastare per l'operazione.
Certo che si, appena posso permettermi un down del server sposterò
l'intera partizione.
Nel frattempo, ero alla ricerca della soluzione più pulita possibile.
Ma non ho voglia di sbattermi a cercare una soluzione che sarà
temporanea. Farò un touch dei vai files e via. Poi sposterò la
partizione.

 partizione.
Hai già fatto la scelta, ma solo per pignoleria il link mi è capitato di
utilizzarlo anche per emergenza temporanea su un server non riavviabile,
visto che di solito sono i file di log attuali (e quindi non compressi)
quelli che danno fastidio e che di solito sono di servizi ben precisi, tipo
httpd, smbd, ecc., basta spostare il file log più grosso in una altra
directory, eseguire il link in /var/log, ricaricare/riavviare il servizio
(e come fastidio hai solo una possibile perdita di qualche riga di log, e
un down di un solo servizio per pochi istanti (a meno che non hai sempre
diecimila utenti sempre connessi e sempre a fare cose vitali per il destino
dell'universo (e usando quel servizio))).

 dell'universo (e usando quel servizio))).
Ovviamente no, altrimenti con un errore del genere e così grossolano
non sarei qui a discutere su come farlo nel modo più 'pulito' ma
l'avrei già fatto io nel modo più rapido possibile... :)

 l'intera partizione.
Se hai già un volume disponibile da utilizzare (es. /dev/vg/log) puoi
fare così:
mount -o bind /var/log /mnt/temp
mount /dev/vg/log /var/log
poi vai di kill -HUP di tutti i demoni
sposti manualmente i precedenti log, ormai chiusi, da /mnt/temp nella
nuova /var/log
Svuoti la /mnt/temp che ormai non ti serve più.
-- 
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4

 mount /dev/vg/log /var/log
Hey, avevo dimanticato il bind.
Ma se bindo le directory, logrotate si accorge ugualmente che sono su
due volumi diversi?
Perchè in tal caso potrei usare la funzione olddir (o oldlog non
ricordo) nativa di logrotate ed evitare sbattimenti.

 due volumi diversi?
Non saprei. Basta che provi con un file di configurazione dedicato, o
sul tuo PC.


 l'avrei già fatto io nel modo più rapido possibile... :)
:)
E' solo che esiste sempre quel servizio su cui si basa tutta un'azienda e
che deve essere disponibile giorno e notte ... (che è poi quel servizio che
non usa nessuno .... ( :) )).

 sul tuo PC.
Posso provare anche online sul server. I log vengono ruotati di notte, 
se faccio la modifica ed eseguo logrotate mi comunica subito eventuali 
errori senza nessuna controindicazione in termini di down o di disservizio.