Visualizza solo le nuove voci in un file di registro in crescita


20
tail -f x.log

Uso questo comando per visualizzare un file di registro crescente nel prompt dei comandi.

Sono interessato solo a vedere le righe del registro che sono scritte nel file dopo l'esecuzione tail -fe non interessate ai registri scritti nel file prima di farlo tail -f. Ma tail -fcomando all'avvio, prende le ultime 10 righe e le visualizza.

Questo mi confonde, a volte se questi registri sono appena generati (o) sono vecchi registri?

Quindi, come posso personalizzare tail -f per produrre solo le nuove voci?

logs  tail 

Risposte:


31

Puoi provare:

tail -n0 -f x.log

Dalla pagina man :

-n, --lines = K
restituisce le ultime K righe, anziché le ultime 10; oppure usa -n + K per produrre linee che iniziano con Kth


12

È possibile utilizzare l' -n0opzione per mostrare 0 righe. Così

tail -n0 -f some.log

2

Puoi anche usare il lesscomando like

  1. less file_name.log (il file di registro verrà aperto e mostrerà la prima pagina del file di registro)
  2. premi shift+ f(per agire come nella coda -f)
  3. Nel caso in cui sia necessario cercare una parola chiave nel file di registro. premi ctrl+ cper uscire dalla modalità coda e cercare la parola chiave come /parola chiave e ?parola chiave.

Ciò non visualizza solo le nuove voci in un file di registro in crescita.
Spettrale

0

Ho creato questo approccio quando ho dovuto monitorare le voci all'interno del contenitore finestra mobile:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

Spero che sia di aiuto!

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.