Mostrar barra de progreso en Linux con pv y tuberías
En el artículo hoy veremos como mostrar una barra de progreso en la terminal de GNU Linux, mediante el comando pv y el uso de tuberías (en inglés pipes)
De esta manera nos podemos cerciorar del tiempo transcurrido en la copia de un fichero, o el tiempo que queda en la descarga de un archivo.
Barra de progreso en GNU Linux con pv
Antes de ver su instalación veamos en que consiste. El programa pv muestra el progreso de los datos a través de una tubería, dando información del tiempo transcurrido, porcentaje completado (con la barra de progreso), tasa de rendimiento y total de datos transferidos.
Para utilizar la herramienta debemos insertarla en una tubería entre dos procesos, con las opciones apropiadas. Su entrada estándar (stdin) pasará a través de la salida estándar (stdout), y así la barra de progreso en el error estándar (stderr) Sí bastante teórica la cosa, así que vamos a ver su funcionamiento.
Instalación en GNU Linux de pv
La manera de instalar el programa es bien sencilla, ya que se encuentra en la mayoría de distribuciones. Veamos ejemplos de la instalación:
Instalación de pv en Debian, Ubuntu, LinuxMint y similares
sudo apt update
sudo apt install pv
Instalación en RHEL, Centos y Scientific Linux
sudo yum update
sudo yum install pv
Instalación en Fedora
sudo dnf install pv
En SUSE y OpenSuse
sudo zypper update
sudo zypper install pv
Su instalación en Arch y derivadas
sudo pacman -S pv
Además también la podemos instalar en sistemas UNIX, como FreeBSD
cd /usr/ports/sysutils/pv/
make install clean
#O bien mediante el paquete binario
pkg_add -r pv
Ahora, para trabajar con el herramienta, veamos algunos ejemplos.
Uso de pv en GNU/Linux y sistemas UNIX
Sus usos habituales son los siguientes:
pv fichero
pv opciones fichero
pv fichero > fichero.out
pv opciones | commando > fichero.out
comando1 | pv | comando2
Copiamos información a un fichero en otra ubicación:
pv ufw.log* > /home/davidochobits/registros-cortafuegos.log
Tal y como se muestra en la imagen:
Podemos ver la barra de progreso al comprimir datos hacia un fichero.
pv /var/log/syslog | zip > syslog.zip
Vemos el resultado en la imagen:
Un parámetro interesante es «-L«, que limita el máximo de transferencia de datos. Veamos el ejemplo de la copia de un fichero grande ISO a otra ubicación:
pv -L 1m debian-9.6.0-amd64-netinst.iso > Descargas/debian.is
Aquí tenéis la imagen del ejemplo:
Para comprobar su versión:
pv --version
Y esto es todo. Si revisáis su página de man, podéis exprimir al máximo sus posibilidades.
Nos vamos leyendo.