Reloj GNU sin borrar salidas anteriores

Reloj GNU sin borrar salidas anteriores

ñuwatches una herramienta muy útil para inspeccionar la salida de un programa: ejecuta el programa y muestra la salida en pantalla completa cada 2 segundos.

A veces, no quiero que se borre el resultado anterior, sino que se imprima línea por línea con una marca de tiempo. Para eso, uso scripts bash como:

while true; 
    do echo -n "`date`   "; 
    ssh ubuntu@server -o ConnectTimeout=1 "uptime" ; 
    sleep 1; 
done

Hay unawatch-¿Herramienta similar que puede ejecutar un comando y mostrar su salida con una marca de tiempo en una línea sin borrar la salida anterior?

Respuesta1

Yo diría que lo has encontrado en bucles simples pero puedes hacer varias cosas desde aquí:

Escribe una función para manejar eso por ti.

function uberwatch {
    # call: uberwatch <interval> <command>
    while true; do
        "${@:2}";
        sleep $1;
    done
}

Podrías colocarlo en algún lugar alrededor de tu ~/.bashrc.

Registre la salida en un archivo pero siga viéndola conwatch

watch "command | tee -a watchlog.log"

Aún así solo verías el último recorrido, pero podrías buscar en un registro histórico si fuera necesario.

Respuesta2

si bien es cierto; hacer fecha >> /vat/tmp/watch.log; dormir 600; ls -l nombre de archivo >> /var/tmp/watch.log; hecho

Me gusta el bucle while mencionado por Artem anteriormente, pero estaba buscando almacenar los datos en un archivo para poder analizarlos cuando regrese, por lo que agregué redirecciones a un archivo. En mi caso, veo el archivo cada 10 minutos y ls -l para el tamaño del archivo.

-Arrendajo

Respuesta3

Me gusta el de Oliwatchsolución modificada, pero me gusta la idea de ver el registro en tiempo real en lugar de revisarlo más tarde.

He aquí una idea:

watch 'echo $(date && command 2>&1 | tail -n 1) >> watchlog.log && cat watchlog.log | tail'

Explicación:

  • echoevita una nueva línea entre datey command.
  • >>se agrega al archivo, igual que | tee -apero sin duplicarlo en watchla salida.
  • 2>&1combina stderr con stdout para asegurarse de que vea todo, incluidos los errores.
  • | tail -n 1restringe la salida a la línea final (la que contiene la datesalida) para una visualización más limpia en tiempo real. Este puede ser o no su deseo para el contenido del archivo de registro.

información relacionada