Quiero hacer algo como esto:
watch tail -f | wc -l
#=> 43
#=> 56
#=> 61
#=> 44
#=> ...
Cuenta nuevas líneas de cola cada segundo
/ Linux, CentOs
Para ser más claro. Tengo algo como esto:
tail -f /var/log/my_process/*.log | grep error
Estoy leyendo algunos mensajes de error. Y ahora quiero contarlos. Cuantos ~ errores tengo en un segundo. Entonces, una línea en un registro es un error en un proceso.
tail -f /path/to/file
solo. Si desea ver líneas de archivo, puede usarwatch wc -l /path/to/file
.tail -f /var/log/my_process/*.log |grep error > /tmp/error.lines & ; watch wc /tmp/error.lines
? Entonces haz matemáticas.Respuestas:
Recientemente descubrí pv, y es realmente genial, podrías hacer algo como
tail -f logfile | pv -i2 -ltr > /dev/null
fuente
Aquí hay un método rápido y sucio. Básicamente, desea dividir el
tail
y elwatch wc
en partes separadas, y hacer algo como:en ese momento, puede hacer cálculos matemáticos para obtener un número de errores / seg. Pero, si solo está haciendo esto para un examen único de su tasa de error, rápido y sucio podría ser lo suficientemente bueno.
fuente
En caso de que pv no esté disponible, se puede hacer con perl:
Cada segundo:
Cada 10 segundos
Salida de muestra:
fuente
Podrías probar algo como esto:
Imprime el número de línea delante de cada línea.
fuente
nl
lo hará, sin requerir la llamada a Perl.