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?

logs  tail 

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


12

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

tail -n0 -f some.log

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.

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!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.