LINUX

Cómo mostrar la barra de progreso para los comandos de Linux

barra de progreso linux

Muchos comandos de Linux como dd, cp, rsync y mv son progresivos pero no muestran barras de progreso mientras se ejecutan. No hay una forma incorporada de verificar el progreso de las operaciones en curso, excepto algunos comandos que se han confirmado recientemente (el comando dd tiene status = progress de GNU coreutils versión 8.24).

En este artículo, veremos ciertas herramientas y opciones de Linux que le permiten monitorear el progreso de la transferencia de datos.

Leer también: Pipe Viewer: una herramienta para ver el progreso de los comandos en Linux

1) Comando PV

Pv es una herramienta basada en la línea de comandos que le permite monitorear el progreso de los datos que se transfieren usando pipe. El comando pv le brinda una vista visual de la siguiente información.

  • Tiempo transcurrido
  • Porcentaje completado usando una barra de progreso.
  • Tasa de rendimiento actual.
  • Total de datos transferidos.
  • ETA (tiempo estimado).

Instalación de Pv

Puede instalar pv en su distribución usando los siguientes comandos

Fedora, CentOS y RHEL

# yum install pv

Debian, Ubuntu y Linux Mint

# apt-get install pv

Gentoo Linux

# emerge --ask sys-apps/pv

FreeBSD Linux

# cd /usr/ports/sysutils/pv/
# make install clean

Uso de PV con ejemplos

La sintaxis general de pv es pv [Options] [File]

los -p opción activa la barra de progreso, -t activa el tiempo total transcurrido durante el que se ha estado ejecutando pv, el -e La opción proporciona la ETA hasta su finalización según la velocidad de transferencia y el tamaño de los -r La opción muestra la tasa actual de la transferencia y finalmente la -b La opción muestra la cantidad total de datos transferidos hasta el momento.

Monitorear el progreso de la creación de un archivo usando gzip

En este ejemplo, usamos pv con gzip en el siguiente ejemplo:

pv -tpre ~/Desktop/testfile.iso | gzip > ~/Desktop/testfile.gz
213MiB 0:00:14 [17.8MiB/s] [=========> ] 32% ETA 0:00:29

En este ejemplo, proporcionamos las opciones y el archivo en cuestión y luego lo canalizamos a gzip con una redirección al archivo que queremos archivar.

Monitorear el progreso al copiar un archivo con pv

$ pv ~/Desktop/testfolder/* > ~/Desktop/

667MiB 0:00:13 [50.5MiB/s] [================================>] 100%

El uso de pv sin ninguna opción se ejecutará automáticamente con el valor predeterminado p, t, e,r y b opciones.

Uso de pv y comandos de diálogo para crear una barra de progreso de diálogo

pv ~/Desktop/testfile.iso > ~/Desktop/destinationfile.iso | dialog --gauge "Progress" 10 70

2) Progreso

Progress, antes conocido como cv, es una herramienta que muestra el porcentaje de datos copiados de comandos básicos de coreutils como p, mv, dd, tar, gzip / gunzip, cat, etc. También puede proporcionar información adicional como ETA y todo.

Progreso de instalación

Puede instalar el progreso en cualquier distribución con estos pasos.

sudo apt-get install libncurses5-dev (for Debian/Ubuntu) users.
# git clone https://github.com/Xfennec/progress.git
# make
# make install

Uso de progreso con ejemplos

La sintaxis general para el progreso es ver el progreso. -q. Esto le permite monitorear todas las transferencias actuales y futuras en una ventana de terminal. Ahora, cualquier utilidad de coreutils que invoques como cp y mv será detectada e indicada en la ventana de progreso.

Monitoreo de descargas

progress -wc google-chrome

los -c La opción se puede usar para monitorear un nombre de comando como google-chrome o firefox

3) Rsync

Rsync se utiliza para sincronizar archivos de forma local y remota. Rsync se puede usar para copiar archivos y también tiene la capacidad de mostrar el progreso sin el uso en una aplicación externa.

Instalación de Rsync

Fedora, CentOS y RHEL

# yum install rsync

Debian, Ubuntu y Linux Mint

# apt-get install rsync

Uso de Rsync con ejemplos

Necesita usar rsync con el -P o --progress opción para mostrar el progreso durante la transferencia de archivos. La sintaxis básica de rsync es

rsync --progress source destination

O

rsync -P source destination

Para copiar un archivo zip desde el escritorio a una nueva carpeta, ingrese:

$ rsync -P ~/Desktop/myfiles.zip ~/Desktop/newfolder
 321,683,456 45% 3.17MB/s 0:01:56

Para copiar archivos de un /example/*.tar a un servidor remoto llamado dummy@linoxide.com, ingrese:

rsync -av -P /example/*.tar dummy@linoxide.com:~

4) Copia avanzada

Advanced Copy, o advcpmv, es un mod para las utilidades cp y mv que agrega una barra de progreso y proporciona información sobre las transferencias en curso.

Instalación de Copia avanzada

Puede instalar el progreso en cualquier distribución con estos pasos.

# wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz
# tar xvJf coreutils-8.21.tar.xz
# cd coreutils-8.21/
# wget https://github.com/atdt/advcpmv/blob/master/advcpmv-0.5-8.21.patch
# patch -p1 -i advcpmv-0.5-8.21.patch
# ./configure
# make

Es posible que obtenga este error mientras ejecuta el comando «./configure».

checking whether mknod can create fifo without root privileges... configure: error: in `/home/xxx/coreutils-8.21': configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See `config.log' for more details

Ejecute el siguiente comando para corregir ese error y vuelva a ejecutar el comando ./configure:

# export FORCE_UNSAFE_CONFIGURE=1

Reemplace los comandos cp y mv originales con estos dos nuevos comandos

# cp src/cp /usr/local/bin/cp
# cp src/mv /usr/local/bin/mv

Uso avanzado de copias con ejemplos

Los comandos cp y mv permanecen iguales, el único cambio es agregar el -g o -progress-bar opción al comando cp. los -R La opción se utiliza para copiar directorios de forma recursiva. A continuación, se muestra un ejemplo del comando:

$ cp -gR /home/linoxide /home/linoxide/Desktop

O

# cp -R --progress-bar home/linoxide /home/linoxide/Desktop

Hemos visto un par de herramientas y cómo se pueden usar para monitorear el progreso de los comandos. El comando pv es fácil de configurar y puede monitorear cualquier actividad de la línea de comando. La utilidad de progreso se limita solo a los comandos coreutils. Rsync tiene la capacidad incorporada de monitorear las transferencias de archivos y la copia avanzada es un parche que se aplica solo a los comandos cp y mv para mostrar el progreso. Según su versión de prueba, puede decidir cuál de estos es mejor para usted.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar