Búsqueda de sitios web

Pv: Mostrar progreso para [Copiar/Copiar/Comprimir] datos en Linux


Al realizar copias de seguridad y copiar/mover archivos grandes en su sistema Linux, es posible que desee monitorear el progreso de una operación en curso. Muchas herramientas de terminal no tienen la funcionalidad que le permite ver información de progreso cuando se ejecuta un comando en una tubería.

En este artículo, veremos un comando importante de Linux/Unix llamado pvPipe Viewer.

Pv es una herramienta basada en terminal que le permite monitorear el progreso de los datos que se envían a través de una tubería. Cuando se utiliza el comando pv, se muestra visualmente la siguiente información:

  • El tiempo que ha transcurrido.
  • El porcentaje completado incluye una barra de progreso.
  • Muestra la tasa de rendimiento actual.
  • El total de datos transferidos.
  • y el ETA (Tiempo estimado).

¿Cómo instalar el comando pv en Linux?

El comando pv no está instalado de forma predeterminada en la mayoría de las distribuciones de Linux, por lo tanto, puede instalarlo siguiendo los pasos a continuación.

Instale pv en Linux basado en RHEL

Primero, debe activar el repositorio EPEL y luego ejecutar el siguiente comando yum o dnf para instalarlo.

yum install pv
OR
dnf install pv          

Instale pv en Linux basado en Debian

sudo apt-get install pv

Instale pv en otras distribuciones de Linux

sudo emerge -a pv        [On Gentoo Linux]
sudo apk add pv          [On Alpine Linux]
sudo pacman -S pv        [On Arch Linux]
sudo zypper install pv   [On OpenSUSE]    

¿Cómo uso el comando pv en Linux?

pv se utiliza principalmente con otros programas que carecen de la capacidad de monitorear el progreso de una operación en curso. Puede usarlo colocándolo en una tubería entre dos procesos, con las opciones apropiadas disponibles.

La entrada estándar de pv pasará a su salida estándar y el progreso (salida) se imprimirá en error estándar. Tiene un comportamiento similar al comando cat en Linux.

La sintaxis del comando pv es la siguiente:

pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2 

Las opciones utilizadas con pv se dividen en tres categorías, interruptores de pantalla, modificadores de salida y opciones generales.

Opciones de modificadores de visualización Pv

Algunas opciones se encuentran en modificadores de visualización.

  • Para activar la barra de visualización, utilice la opción -p.
  • Para ver el tiempo transcurrido, utilice la opción --timer.
  • Para activar el temporizador de ETA que intenta adivinar cuánto tiempo pasará antes de completar una operación, utilice la opción --eta. La suposición se basa en las tasas de transferencia anteriores y el tamaño total de los datos.
  • Para activar un contador de tarifas, utilice la opción --rate.
  • Para mostrar la cantidad total de datos transferidos hasta el momento, utilice la opción --bytes.
  • Para mostrar información de progreso de porcentaje entero en lugar de una indicación visual, use la opción -n. Esto puede ser bueno cuando se usa pv con el comando de diálogo para mostrar el progreso en un cuadro de diálogo.

Opciones de modificadores de visualización Pv

Algunas opciones se encuentran en modificadores de salida.

  • Para esperar hasta que se transfiera el primer byte antes de mostrar la información de progreso, utilice la opción --wait.
  • Para asumir que la cantidad total de datos que se transferirán es SIZE bytes al calcular el porcentaje y la ETA, utilice la opción --size SIZE.
  • Para especificar segundos entre actualizaciones, utilice la opción --interval SECONDS.
  • Utilice la opción --force para forzar una operación. Esta opción obliga a pv a mostrar imágenes cuando el error estándar no es una terminal.
  • Las opciones generales son --help para mostrar información de uso y –version para mostrar información de versión.

Comando Pv con ejemplos en Linux

1. Cuando no se incluye ninguna opción, los comandos pv se ejecutan con los valores predeterminados -p, -t, -e, -r y -b.

Por ejemplo, para copiar el archivo opensuse.vdi a /tmp/opensuse.vdi, ejecute este comando y observe la barra de progreso en el screencast.

pv opensuse.vdi > /tmp/opensuse.vdi

2. Para crear un archivo zip a partir de su archivo /var/log/syslog, ejecute el siguiente comando.

pv /var/log/syslog | zip > syslog.zip

3. Para contar el número de líneas, palabras y bytes en el archivo /etc/hosts mientras se muestra solo la barra de progreso, ejecute este comando a continuación.

pv -p /etc/hosts | wc

4. Supervise el progreso de la creación de un archivo de copia de seguridad utilizando la utilidad tar.

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

5. En el ejemplo, utilizamos el comando dd para escribir el archivo ISO en la unidad flash USB:

dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M

6. Utilice la herramienta basada en terminal pv y dialog juntas para crear una barra de progreso de diálogo de la siguiente manera.

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

Resumen

Esta es una buena herramienta basada en terminal que puede usar con herramientas que no tienen la capacidad de monitorear el progreso de operaciones como copiar/mover/hacer copias de seguridad de archivos. Para obtener más opciones, consulte man pv. .

Espero que este artículo le resulte útil y pueda publicar un comentario si tiene alguna idea que agregar sobre el uso del comando pv. Y si recibe algún error al usarlo, también puede dejar un comentario.