Cómo comprobar el progreso de la ejecución de comandos en Linux

A veces, al copiar un archivo grande, como una película o una imagen del sistema operativo, cp El comando tarda más de lo esperado en función de la carga de su sistema. Dado que no informa el progreso de la operación, resulta difícil entender qué está sucediendo exactamente.

En escenarios como estos, un comando como cv podría ser de gran ayuda, ya que no solo permite conocer el progreso de la operación, sino que también es capaz de mostrar el tiempo restante. En este artículo, analizaremos el comando junto con algunos ejemplos útiles.

Introducción

los cv command es una utilidad que busca específicamente coreutils comandos básicos, como cp, mv, dd, tar, cat, y más, que se está ejecutando actualmente en su sistema y muestra su porcentaje de progreso. Aunque es específico de Linux, un Puerto Mac OSX también está disponible.

Descargar e instalar

Para descargar e instalar el cv comando, dirígete a su Repositorio de Github y descargue el paquete fuente (el nombre del archivo descargado en mi caso fue “cv-master.zip”). Una vez hecho esto, extraiga los archivos usando el siguiente comando:

Ingrese al directorio «cv-master» y ejecute los siguientes comandos para construir el paquete e instalar el binario:

Tenga en cuenta que el cv El comando depende de la biblioteca «ncurses», por lo que es posible que deba instalar los paquetes correspondientes, lo que se puede hacer ejecutando el siguiente comando:

Otro punto que vale la pena señalar es que después de la instalación, el binario va a «/ usr / local / bin», así que asegúrese de que la ruta se agregue al entorno de su sistema, de lo contrario su shell no podrá encontrar el comando cuando ejecute eso. Una alternativa sería cambiar su directorio actual a “/ usr / local / bin” y luego ejecutar el comando de la siguiente manera:

Uso

A continuación, se muestran algunos ejemplos de cómo se puede utilizar este comando:

Nota: Todos los ejemplos presentados en este artículo se probaron en Ubuntu 14.04.

Un ejemplo basico

Desde el cv comando muestra el progreso de otros comandos que se están ejecutando, tiene que haber un comando que se ejecute el tiempo suficiente para que el cv El comando podría mostrar cualquier cosa. Por ejemplo, intenté copiar un archivo enorme desde mi pen-drive a mi caja de Linux, y como el cp se ejecutó el comando, inmediatamente cambié a otra pestaña de shell y ejecuté el siguiente comando:

El comando mostró el siguiente resultado:

cv-default-ouput-single-command

El primer campo en la salida es el PID del comando que se está monitoreando, seguido del comando y el progreso en porcentaje y números. Un punto que vale la pena señalar es que la primera línea en la salida del cv comandocat inactive/flushing/streaming/...) es el predeterminado: verifiqué el código y descubrí que la línea se imprime bajo ciertas condiciones, lo que aparentemente siempre se golpea (podemos ignorarlo por ahora).

Si se está ejecutando más de un comando, el cv El comando muestra el progreso relacionado con todos ellos. Por ejemplo, aquí está la salida con dos comandos en ejecución:

cv-default-ouput-multiple-commands

Obtenga un rendimiento de E / S y ETA estimados

Si bien es útil conocer el progreso de un comando, es aún más conveniente si conoce otra información como el tiempo restante o la hora estimada de llegada. Por esto, el cv comando ofrece el -w opción de línea de comando.

Por ejemplo, cuando se ejecutó el siguiente comando:

se mostró el siguiente resultado:

Los dos últimos campos de la salida, que representan el rendimiento estimado de E / S y ETA, significan que la operación de copia progresa a una velocidad de 27,9 MB por segundo y tardará 32 segundos en completarse.

Bucle el comando

Mientras usa el cv comando, notará que muestra los detalles del progreso en ese instante y luego termina. Para asegurarse de que cv no termina hasta que finaliza el comando que se está monitoreando, use el -m opción.

Esto asegurará que el cv bucles de comando mientras los procesos monitoreados aún se están ejecutando.

Conclusión

los cv El comando podría ser un activo para aquellos que se ocupan de transferir archivos pesados ​​u otras operaciones que consumen mucho tiempo en la línea de comandos de Linux. No hace falta decir que, al ser de código abierto, puede cambiar la forma en que interactúa y funciona haciendo cambios en su código base, que es bastante pequeño y fácil de entender.

Alguna vez has usado cv o cualquier otro comando similar? ¿Cómo fue tu experiencia? Comparta sus pensamientos en los comentarios a continuación.