Ver solo las nuevas entradas en un archivo de registro creciente

20
tail -f x.log

Uso este comando para ver un archivo de registro creciente en el símbolo del sistema.

Solo me interesa ver las líneas de registro que se escriben en el archivo después de la ejecución tail -fy no me interesan los registros que se escribieron en el archivo antes de hacerlo tail -f. Pero el tail -fcomando al inicio, toma las últimas 10 líneas y lo muestra.

Esto me confunde, ¿a veces si estos registros se generan recientemente (o) son registros antiguos?

Entonces, ¿cómo puedo personalizar tail -f para generar solo las nuevas entradas?


fuente

Respuestas:

31

Puedes probar:

tail -n0 -f x.log

Desde la página del manual :

-n, --lines = K genera
las últimas K líneas, en lugar de las últimas 10; o use -n + K para generar líneas que comienzan con Kth

taliezin
fuente
12

Puede usar la -n0opción para mostrar 0 líneas. Entonces

tail -n0 -f some.log
fredtantini
fuente
2

También puedes usar lesscomandos como

  1. less file_name.log (el archivo de registro se abrirá y mostrará la primera página del archivo de registro)
  2. presione shift+ f(para actuar igual que la cola -f)
  3. En caso de que necesite buscar cualquier palabra clave en el archivo de registro. presione ctrl+ cpara salir del modo de cola y buscar la palabra clave como /palabra clave y ?palabra clave.
Ragu Rathish
fuente
Esto no ve solo las nuevas entradas en un archivo de registro creciente.
Espeluznante
0

Creé este enfoque cuando tuve que monitorear las entradas dentro del contenedor docker:

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
}

¡Espero que esto ayude!

Number16BusShelter
fuente