Come monitorare solo le ultime n righe di un file di registro?


110

Ho un file di registro in crescita per il quale voglio visualizzare solo le ultime 15 righe. Ecco cosa so di poter fare:

tail -n 15 -F mylogfile.txt

Man mano che il file di registro viene riempito, tailaggiunge le ultime righe al display.

Sto cercando una soluzione che visualizzi solo le ultime 15 righe e mi liberi delle righe prima delle ultime 15 dopo che è stato aggiornato. Ne avresti un'idea?


28
Ridimensiona la finestra del terminale su 15 righe.
Jonathan,

1
Anche questo è buono.
Marc-Olivier Titeux,

3
@Jonathan genius!
Marsellus Wallace,

Impossibile votare il commento di Jonathan o perde il sapore di avere 15 voti positivi
jdero

Risposte:


151

Potrebbe essere sufficiente usare watch:

$ watch tail -n 15 mylogfile.txt

1
Grande! Molte grazie. Inoltre apprendo il comando 'watch' nel processo.
Marc-Olivier Titeux,

1
Tenere presente che questa soluzione non funziona se il file aumenta di oltre 15 righe tra due watchaggiornamenti. È possibile utilizzare -nper modificare questo intervallo.
bfontaine,

25

Se usi watch, prova l' -nopzione per controllare l'intervallo tra ogni aggiornamento.

Pertanto, quanto segue chiamerebbe tail ogni 2 secondi

$ watch -n 2 tail -n 15 mylogfile.txt

mentre questo lo interroga ogni 1 secondo

$ watch -n 1 tail -n 15 mylogfile.txt

13

È possibile eseguire lo streaming del file di registro in esecuzione meno e premendo MAIUSC + F che eseguirà lo streaming del file utilizzando meno. $ less mylogfile.txt Quindi basta premere MAIUSC + F e lo streaming. Penso che sia conveniente per il monitoraggio dei file di registro che si aggiornano.


1
È molto bello!
Kaiser

8

Forse trovi -dutile il parametro.

man watch

-d Evidenzia le differenze tra gli aggiornamenti successivi. L'opzione leggerà l'argomento facoltativo secondo cui le modifiche evidenziano come permanenti, consentendo di vedere cosa è cambiato almeno una volta dalla prima iterazione.


1
Buona cattura anche!
Marc-Olivier Titeux,

0

In Solaris, AIX o HPUX o UNIX (incluso Linux) è possibile utilizzare gli script per monitorare i registri o cose del genere:

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
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.