Cómo monitorear el progreso de una operación de línea de comandos de Linux usando PV Command

Cómo monitorear el progreso de una operación de línea de comandos de Linux usando PV Command

Si es un administrador de sistemas Linux, no hay duda de que debe pasar la mayor parte de su tiempo de trabajo en la línea de comandos: instalando y eliminando paquetes; estadísticas del sistema de seguimiento; copiar, mover, borrar cosas; problemas de depuración; y más. Hay ocasiones en las que dispara un comando y tarda un poco en completarse la operación. Sin embargo, también hay ocasiones en las que el comando que ejecutó simplemente se cuelga, dejándolo adivinando lo que realmente está sucediendo detrás de escena.

Por lo general, los comandos de Linux no brindan información relacionada con el progreso de la operación en curso, algo que es muy importante, especialmente cuando se dispone de tiempo limitado. Sin embargo, eso no significa que estés indefenso; existe un comando, denominado pv, que muestra información de progreso útil relacionada con la operación de línea de comandos en curso. En este artículo, analizaremos este comando, así como sus características, a través de algunos ejemplos fáciles de entender.

Comando PV

Desarrollado por Andrew Wood, PV – que significa Pipe Viewer – muestra información relacionada con el progreso de los datos a través de una canalización. La información incluye tiempo transcurrido, porcentaje completado (con barra de progreso), tasa de rendimiento actual, total de datos transferidos y ETA.

“Para usarlo, insértelo en un pipeline entre dos procesos, con las opciones adecuadas. Su entrada estándar pasará a su salida estándar y el progreso se mostrará en el error estándar «.

Lo anterior explica la página de manual del comando.

Descarga e instalación

Los usuarios de sistemas basados ​​en Debian como Ubuntu pueden instalar fácilmente la utilidad ejecutando el siguiente comando en la terminal:

Si está usando cualquier otra distribución de Linux, puede instalar el comando usando el administrador de paquetes instalado en su sistema. Una vez instalada correctamente, puede utilizar la utilidad de línea de comandos en varios escenarios (consulte la siguiente sección). Vale la pena mencionar que pv versión 1.2.0 se ha utilizado en todos los ejemplos mencionados en este artículo.

Características y uso

Un escenario muy común con el que probablemente la mayoría de nosotros (que trabajamos en la línea de comandos en Linux) estaría relacionado con copiar un archivo de película desde una unidad USB a su computadora. Si intenta completar la operación mencionada anteriormente utilizando el cp comando, tendrá que esperar ciegamente hasta que se complete la copia o se arroje algún error.

sin embargo, el pv El comando puede ser útil en este caso. Aquí hay un ejemplo:

Y aquí está el resultado:

copia pv

Entonces, como puede ver arriba, el comando muestra mucha información útil relacionada con la operación en curso, incluida la cantidad de datos que se han transferido, el tiempo transcurrido, la tasa de transferencia, la barra de progreso, el progreso en porcentaje y la cantidad de tiempo restante.

La pv El comando proporciona varios interruptores de pantalla. Por ejemplo, puede utilizar -p para mostrar el porcentaje, -t para temporizador, -r para la tasa de transferencia, -e para eta, y -b para contador de bytes. Lo bueno es que no tendrás que recordar ninguno de ellos, ya que todos están habilitados de forma predeterminada. Sin embargo, si necesita exclusivamente información relacionada solo con un interruptor de pantalla en particular en la salida, puede pasar ese interruptor en el pv mando.

También hay un -n interruptor de visualización que permite que el comando muestre un porcentaje entero, uno por línea en el error estándar, en lugar del indicador de progreso visual normal. El siguiente es un ejemplo de este interruptor en acción:

pv-numérico

Este interruptor de pantalla en particular es adecuado en escenarios en los que desea canalizar la salida al diálogo mando.

Continuando, también hay una opción de línea de comando, -L, que le permite modificar la velocidad de transferencia de datos del comando pv. Por ejemplo, usé -L para limitar la velocidad de transferencia de datos a 2 MB / s.

pv-ratelimit

Como se puede ver en la captura de pantalla anterior, la tasa de transferencia de datos se limitó según mi dirección.

Otro escenario donde pv puede ayudar mientras comprime archivos. Aquí hay un ejemplo de cómo puede usar este comando mientras comprime archivos usando Gzip:

pv-gzip

Conclusión

Como has observado, pv es una pequeña utilidad útil que podría ayudarlo a ahorrar su valioso tiempo en caso de que una operación de línea de comandos no se comporte como se esperaba. Además, la información que muestra también se puede utilizar en scripts de shell. Recomiendo encarecidamente este comando; vale la pena intentarlo.