PDA

View Full Version : [C Linux] file di log entro limiti


trallallero
18-04-2007, 12:53
qualcuno conosce un sistema per mantenere un file sotto certe dimensioni ?
abbiamo un server non stop che scrive su un file di log che ad un certo punto potrebbe essere un poŽ troppo grandino. Ci piacerebbe mantenerlo entro un certo numero di righe eliminando ovviamente quelle piuŽvecchie.
Io unŽidea cŽeŽ lŽho ma se giaŽ esiste eŽ meglio percheŽ abbiamo tonnellate di lavoro ...
grazie :)

cionci
18-04-2007, 13:15
http://www.linuxcommand.org/man_pages/logrotate8.html ;)

trallallero
18-04-2007, 13:22
http://www.linuxcommand.org/man_pages/logrotate8.html ;)

grazie ma deve essere un sorgente per motivi di portabilitaŽ.
Non eŽ che si trovano i sorgenti di questo logrotate ? :fiufiu:

trallallero
18-04-2007, 14:08
http://riksun.riken.go.jp/pub/pub/Linux/slackware/slackware-11.0/source/a/logrotate/?C=M;O=A

cionci
18-04-2007, 14:13
logrotate è un demone...non credo che ti convenga partire dal codice...
Allora fai prima a fartelo da te ogni tot minuti il controllo...il log è troppo grande ? Metto da parte il file e comincio da uno nuovo...
Ogni volta ti conservi solo il log corrente e l'ultimo pieno...

trallallero
18-04-2007, 14:35
logrotate è un demone...non credo che ti convenga partire dal codice...
Allora fai prima a fartelo da te ogni tot minuti il controllo...il log è troppo grande ? Metto da parte il file e comincio da uno nuovo...
Ogni volta ti conservi solo il log corrente e l'ultimo pieno...
si stavo pensando anchŽio di fare una specie di archivio anche percheŽ leggendo cosiŽ al volo quello che fa logrotate (se ho capito bene), eŽ simile a quello che pensavo io quindi NON performante. Copi, rinomini, cancelli ...
Si eŽ meglio n files da tenere il resto da cancellare.

Grazie :)

trallallero
19-04-2007, 12:36
ho risolto cosiŽ:

viene passato al sistema quanti files tenere, dimensione massima del file e il livello di log.
Quando viene superata la dimensione massima del file di log questo viene chiuso, il nome viene aggiunto ad una lista dinamica e viene creato un nuovo file.
Se gli elementi della lista superano il limite imposto, il file piuŽ vecchio viene eliminato e la lista aggiornata.
In effetti eŽ molto meno costoso che mantenere un file entro certi limiti e ti garantisce uno storico dinamico.

cionci
19-04-2007, 12:44
In effetti eŽ molto meno costoso che mantenere un file entro certi limiti e ti garantisce uno storico dinamico.
Sicuramente...e nemmeno tanto complesso da implementare...

trallallero
19-04-2007, 13:02
Sicuramente...e nemmeno tanto complesso da implementare...

si infatti alla fine eŽ meglio sotto tutti gli aspetti, anche quello :)

oddio, io poi cerco sempre di complicarmela la vita ma questo e# un altro discorso :asd:

static char ***ppFilenames = NULL, // the array of 2 lists

trallallero
24-04-2007, 12:46
per vari motivi mi servirebbe ottenere la lista dei file di un direttorio ma dal piuŽ vecchio al piuŽ nuovo.
Non mi sembra sia possibile se non con la strutt. stat etc il che mi costringerebbe a prendere prima tutti i file poi analizzarli quindi significa fare una matrice, ordinarla etc ... possibile ?

quasi quasi faccio una
system("ls -ltr"); :stordita:

(ma mi sa che mi rispediscono a casa se la faccio :D)

trallallero
24-04-2007, 13:05
per vari motivi mi servirebbe ottenere la lista dei file di un direttorio ma dal piuŽ vecchio al piuŽ nuovo.
Non mi sembra sia possibile se non con la strutt. stat etc il che mi costringerebbe a prendere prima tutti i file poi analizzarli quindi significa fare una matrice, ordinarla etc ... possibile ?

quasi quasi faccio una
system("ls -ltr"); :stordita:

(ma mi sa che mi rispediscono a casa se la faccio :D)

come non detto, li ordino in real time