GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo monitorear el progreso de (copiar/respaldar/comprimir) datos usando el comando 'pv'

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:

  1. El tiempo transcurrido.
  2. El porcentaje completado, incluida una barra de progreso.
  3. Muestra la tasa de rendimiento actual.
  4. El total de datos transferidos.
  5. 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.
  1. Para activar la barra de visualización, utilice -p opción.
  2. Para ver el tiempo transcurrido, use el –temporizador opción.
  3. 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.
  4. Para activar un contador de tasas, use la –tasa opción.
  5. Para mostrar la cantidad total de datos transferidos hasta el momento, utilice los –bytes opción.
  6. 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.
  1. Para esperar hasta que se transfiera el primer byte antes de mostrar la información de progreso, use el botón –wait opción.
  2. 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.
  3. Para especificar segundos entre actualizaciones, use el –interval SECONDS opción.
  4. 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.
  5. 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

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

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

2. Para crear un archivo zip desde 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 /etc/hosts archivo mientras 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 con la utilidad tar.

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

5. Usando pv y diálogo herramienta basada en terminal 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 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.


Linux
  1. Cómo hacer una copia de seguridad o clonar particiones de Linux usando el comando 'cat'

  2. Cómo hacer una copia de seguridad y restaurar la base de datos MySQL usando la línea de comandos

  3. Cómo reiniciar Linux usando la línea de comandos

  4. ¿Cómo comprimir y extraer archivos usando el comando tar en Linux?

  5. Cómo hacer una copia de seguridad del sistema operativo Linux usando el comando "dd"

Cómo monitorear el progreso de los datos a través de una tubería usando el comando 'pv'

Cómo hacer una copia de seguridad de archivos y carpetas en Debian 10

Cómo hacer una copia de seguridad del sistema de archivos de Linux usando el comando dump

Cómo usar el Comando ss (Supervisar las Conexiones de Red)

Cómo copiar archivos en Linux usando el comando CP

Cómo crear una partición usando el comando "partid"