GNU/Linux >> Tutoriales Linux >  >> Linux

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

Imagina este escenario. Está intentando copiar un archivo grande de un directorio a otro o de un sistema a otro a través de la línea de comandos. Como probablemente sepa, no verá ninguna indicación de la tarea de copia si está utilizando el comando 'cp'. Solo verás una pantalla vacía. No puede estar seguro de si el proceso de copia continúa o no, hasta que se completa el proceso de copia. En tales casos, puede usar pv comando para monitorear el progreso de los datos. El pv, acrónimo de p ipe v iewer, el comando permite a un usuario ver el progreso de los datos a través de una canalización, proporcionando la siguiente información:

  • tiempo total transcurrido,
  • porcentaje completado (con barra de progreso),
  • tasa de rendimiento actual,
  • total de datos transferidos,
  • y ETA.

En este breve tutorial, veremos cómo y dónde usar el comando pv para monitorear el progreso de los datos en sistemas similares a Unix.

Descargar - Hoja de referencia gratuita:"Hoja de referencia de la línea de comandos de Linux"

Instalar pv en Linux

La mayoría de las distribuciones modernas de Linux vienen preinstaladas con el comando pv. Por si acaso, si aún no está instalado, puede instalarlo ejecutando el siguiente comando desde su Terminal, según la distribución de Linux que use.

En Arch Linux, Antergos, Manjaro Linux:

$ sudo pacman -S pv

En RHEL, CentOS, Fedora:

$ sudo yum install pv

O,

$ sudo dnf install pv

En Debian, Linux Mint, Ubuntu:

$ sudo apt-get install pv

En SUSE, abra SUSE:

$ sudo zypper in pv

Ahora, hemos instalado pv. Déjame mostrarte algunos ejemplos.

Supervise el progreso de los datos a través de una tubería usando el comando 'pv'

Mire la salida del siguiente comando:

$ cp CentOS7.iso Downloads/

comando cp

Este comando copia la imagen ISO de CentOS 7 en Descargas directorio en mi sistema local. Como puede ver en el resultado anterior, no muestra ninguna barra de progreso. Solo verás el cursor parpadeando. No sabemos cuánto tiempo tomará el proceso de copia. Esto puede ser molesto a veces, ya que no vemos ninguna señal de cuándo se completará este comando. Aquí es donde el comando pv viene en ayuda. El comando pv le mostrará el progreso de los comandos de Linux y le mostrará cuándo se completará el comando de Linux. Por lo tanto, puede salir de la Terminal y hacer otras tareas y volver cuando la tarea haya terminado.

Ahora, hagamos lo mismo con el visor de tuberías (pv) y veamos cuál es el resultado.

$ pv CentOS7.iso > Downloads/centos.iso

Monitoree el progreso de los datos a través de una tubería usando el comando 'pv'

Ves, ¿entiendes la diferencia? Como dije, el comando pv muestra el tiempo total transcurrido, el porcentaje completado (con barra de progreso), la tasa de rendimiento actual, el total de datos transferidos y el ETA.

Déjame darte algunos ejemplos más.

Podemos limitar la tasa de transferencia de datos usando -L interruptor como se muestra en el siguiente ejemplo.

$ pv -L 2m CentOS7.iso > Downloads/centos.iso

El comando anterior limitará la tasa de transferencia de datos a 2 MB por segundo . Mira el siguiente resultado.

Limite la tasa de transferencia de datos usando el comando pv

Si tiene varios archivos o directorios, puede usar pv con comando tar como se muestra a continuación:

$ tar c Notebooks/ | pv | tar x -C Documents/

El comando anterior comprimirá el directorio Notebooks, lo copiará en el directorio Documents y finalmente extraerá el contenido.

Aquí hay otro ejemplo. Este comando creará un archivo del archivo CentOS7.iso y guárdelo en el directorio de trabajo actual.

$ pv CentOS7.iso | zip > centos.zip

crear un archivo de almacenamiento usando el comando pv

También puede usar pv con comando dd para copiar archivos entre directorios como a continuación. Este comando copia el archivo CentOS7.iso del directorio actual al directorio de Descargas.

$ dd if=CentOS7.iso | pv | dd of=Downloads/centos7.iso

use el comando pv con el comando dd para copiar archivos entre directorios

Otro comando útil para mostrar el progreso de los datos es dialog . Podemos usarlo junto con el comando pv para mostrar el progreso de los datos como se muestra a continuación.

$ tar -czf - Official/ | (pv -n > mybackup.tgz) 2>&1 | dialog --gauge "Compressing files, please wait..." 10 70 0

Salida de muestra:

use el comando de diálogo con el comando pv para mostrar el progreso de los datos

Para obtener más detalles, consulte las páginas man.

$ man pv

Además, consulte nuestra guía anterior para transferir rápidamente archivos grandes entre dos sistemas remotos a través de la red usando netcatalquitrán , y pv comandos en sistemas operativos Linux y Unix.

  • Cómo transferir rápidamente archivos grandes a través de la red en Linux y Unix

Actualización:

La barra de progreso para los comandos "cp" y "mv" se puede agregar fácilmente usando un parche llamado "Copia avanzada" . Para obtener más información, consulte el siguiente enlace.

  • Copia avanzada:agregar barra de progreso a los comandos cp y mv en Linux

Linux
  1. Cómo crear una base de datos en MySQL usando la línea de comandos

  2. ¿Cómo obtener un recuento de archivos en un directorio usando la línea de comando?

  3. ¿Cómo verificar si una tubería está vacía y ejecutar un comando en los datos si no lo está?

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

  5. Cómo canalizar texto desde la línea de comando al portapapeles

Cómo reproducir las sesiones de terminal grabadas mediante el comando Scriptreplay

Cómo reiniciar Debian usando la línea de comandos

Cómo usar el comando nmap

¿Cómo instalar Google Chrome en Ubuntu 18.04 usando la línea de comandos?

Cómo escribir comandos fácilmente con el cmdlet Show-command de Powershell

Cómo descargar archivos en Rocky Linux 8 en la línea de comandos usando wget