Quiero hacer un cálculo simple de la cantidad de líneas por minuto agregadas a un archivo de registro.
También quiero almacenar el recuento por cada segundo.
Lo que necesito es la salida del siguiente comando como una lista que se actualizará cada segundo:
watch -n1 'wc -l my.log'
¿Cómo generar la 'actualización' del comando 'watch' como una lista?
wait
, solo inténtalowatch -n 1 "sleep 5"
.watch
era útil, pero ni siquiera te da eso, por lo que tu solución es tan buena como la basada en el reloj, pero ninguno de los dos responde a la pregunta "velocidad a la que crece un archivo de registro" con gran precisión.watch
tiene una-p
opción que lo hará bien, si es posible (obviamente, no puede hacer un comando que tome 5 segundos cada 1 segundo, si no se le permiten múltiples simultáneos). Lo sé, lo escribíUna vieja pregunta, pero acabo de encontrar una respuesta muy fácil:
Esto ejecutará
wc
cada segundo, agregará su salida al archivo stats.log y también lo mostrará en la pantalla.Por lo tanto, terminará con un archivo lleno de números, que representa el número sucesivo de líneas de
my.log
.fuente
watch "($MYCMD | tee -a $MYLOG)"
no lo eswatch "($MYCMD)" | tee -a $MYLOG
. Si te equivocaste como lo hice, la salida será muy confusa. Otra cosa a tener en cuenta aquí es que este comando no agrega la marca de tiempo de la ejecución de cada comando de forma predeterminada, por lo que la respuesta con el bucle podría funcionar mejor para usted.Qué tal si
fuente
Intenta lo siguiente:
fuente
Me encontré con esta pregunta cuando estaba tratando de obtener una salida mejor / registrada de
du -sh $data_path
. Usé el patrón "mientras que el comando, duerme" que se encuentra aquí, pero usé algunos AWK complejos para dar la salida que quería.De hecho, hice esto como una línea, por eso hay puntos y comas. Pero para hacerlo legible, lo saqué. El resultado se ve así:
fuente
Podrías crear un script que lo haga por ti. Llamé al mío
keep
(sigue haciéndolo) y lo puse en elbin
camino.Este es mi guión:
fuente
"$@"
para ejecutar el comando (argumentos) en lugar de sin comillas$*
. De esta manera, el shell mantendrá los argumentos entre comillas, etc., como el usuario los esperaría. FTFY.