Al realizar copias de seguridad, 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 la información de progreso cuando un comando se ejecuta en una tubería.
Lea también :Comando de copia avanzada para mostrar la barra de progreso al copiar archivos en Linux


En este artículo, veremos un comando importante de Linux/Unix llamado pv .
Lectura sugerida: Progreso:una pequeña herramienta para monitorear el progreso de los comandos (cp, mv, dd, tar, etc.)
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. Al usar el pv comando, le ofrece una visualización de la siguiente información:
- El tiempo transcurrido.
- El porcentaje completado, incluida 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?
Este comando no está instalado de forma predeterminada en la mayoría de las distribuciones de Linux, por lo que puede instalarlo siguiendo los pasos a continuación.
Sobre Fedora, CentOS y RHEL
Primero debe activar el repositorio EPEL y luego ejecutar el siguiente comando.
# yum install pv # dnf install pv [On Fedora 22+ versions]
Salida de muestra
Dependencies Resolved ================================================================================= Package Arch Version Repository Size ================================================================================= Installing: pv x86_64 1.4.6-1.el7 epel 47 k Transaction Summary ================================================================================= Install 1 Package Total download size: 47 k Installed size: 93 k Is this ok [y/d/N]: y Downloading packages: pv-1.4.6-1.el7.x86_64.rpm | 47 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : pv-1.4.6-1.el7.x86_64 1/1 Verifying : pv-1.4.6-1.el7.x86_64 1/1 Installed: pv.x86_64 0:1.4.6-1.el7 Complete!
En Debian, Ubuntu y Linux Mint
# apt-get install pv
Salida de muestra
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: pv 0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded. Need to get 33.7 kB of archives. After this operation, 160 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB] Fetched 33.7 kB in 0s (48.9 kB/s) Selecting previously unselected package pv. (Reading database ... 216340 files and directories currently installed.) Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ... Unpacking pv (1.2.0-1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Setting up pv (1.2.0-1) ...
En Gentoo Linux
Utilice el administrador de paquetes emerge para instalar pv comando como se muestra.
# emerge --ask sys-apps/pv
En FreeBSD Linux
Puede usar el puerto para instalarlo de la siguiente manera:
# cd /usr/ports/sysutils/pv/ # make install clean
O agregue el paquete binario de la siguiente manera:
# pkg_add -r pv
¿Cómo uso el comando pv en Linux?
pv se usa 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 canalización 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 .
Algunas opciones en los modificadores de visualización.
- Para activar la barra de visualización, utilice -p opción.
- Para ver el tiempo transcurrido, use el –temporizador opción.
- Para activar el temporizador ETA que trata de adivinar cuánto tiempo pasará antes de que se complete una operación, use el –eta opción. La conjetura se basa en tasas de transferencia anteriores y el tamaño total de los datos.
- Para activar un contador de tasas, use la –tasa opción.
- Para mostrar la cantidad total de datos transferidos hasta el momento, utilice los –bytes opción.
- Para mostrar el informe de progreso del porcentaje entero en lugar de una indicación visual, use -n opció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.
Algunas opciones en modificadores de salida.
- Para esperar hasta que se transfiera el primer byte antes de mostrar la información de progreso, use el botón –wait opción.
- Suponer que la cantidad total de datos que se transferirán es SIZE bytes al calcular el porcentaje y la hora estimada de llegada, use –size SIZE opción.
- Para especificar segundos entre actualizaciones, use el –interval SECONDS opción.
- Usar –fuerza opción de 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 –ayuda para mostrar información de uso y –versión para mostrar la información de la versión.
Usar el comando pv con ejemplos
Por ejemplo, para copiar opensuse.vdi archivo a /tmp/opensuse.vdi , ejecute este comando y observe la barra de progreso en screencast.
# pv opensuse.vdi > /tmp/opensuse.vdi
# pv /var/log/syslog | zip > syslog.zip
# pv -p /etc/hosts | wc
# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
# 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 encuentre útil este artículo y que pueda publicar un comentario si tiene alguna idea para agregar sobre el uso del comando pv. Y si obtiene algún error mientras lo usa, también puede dejar un comentario.