Fine coda -f dopo la stampa di n righe


10

Ho il seguente.

  1. Un processo Java che scrive accede al file
  2. Uno script shell che avvia il processo Java.

Ho bisogno di leggere il file di registro dopo l'avvio del processo Java per verificare l'avvio corretto.

Ho provato con, tail -fma rimane aggiunto per sempre. Ho bisogno di tailfermarmi dopo aver stampato n righe. C'è un modo come -nopzione per le linee precedenti?


1
Il file di registro viene pulito ogni volta, dopo che lo script della shell esegue il processo Java?
c0rp,

Uso log4j con la modalità append per scrivere il file di registro. Ruota dopo che la dimensione del file aumenta fino a 10 MB.
theShadow89,

Risposte:


24

È possibile reindirizzare l'output di tail -fa headper limitare la quantità di righe visualizzate:

tail -f [PATH] | head -n 100

per mostrare solo 100 righe in totale.


7

Solo nuove linee

Con il semplice tail -f, le prime 10 righe provengono dal file in quanto esiste già:

tail -f file.log | head -30

scrive 10 righe di log.txtquando viene eseguito e 20 (n-10) righe che vengono aggiunte in seguito.

Con un file di registro, normalmente usi -f( --follow) per vedere le righe scritte in futuro.

Per vedere solo le 30 righe che erano state scritte dopo aver tailavviato, limitare l'output iniziale a 0:

tail -f -n0 file.log | head -30
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.