Inicio > Entorno y utilidades > pv

pv: Monitoreo del progreso de datos en tuberías

pv (Pipe Viewer) es una herramienta para monitorear el progreso de los datos que fluyen a través de tuberías. Muestra en tiempo real el rendimiento de los datos, la cantidad total de datos transferidos, el tiempo estimado de finalización, etc., lo que ayuda a visualizar el progreso de tareas de larga duración.

Descripción general

pv lee datos de la entrada estándar y los pasa a la salida estándar, midiendo el flujo de datos y mostrando el progreso en la terminal. Esto es particularmente útil para operaciones que consumen mucho tiempo, como la copia de archivos grandes, la compresión y la transferencia de red.

Funciones principales

  • Visualización del rendimiento de datos en tiempo real
  • Visualización de la cantidad total de datos transferidos
  • Barra de progreso y tiempo estimado de finalización (ETA)
  • Función de limitación de velocidad de transferencia de datos

Opciones principales

Las opciones principales del comando pv se utilizan para el formato de visualización de datos, la limitación de velocidad, la especificación del tamaño, etc.

Visualización y control

Comando generado:

Combina los comandos.

Descripción:

`pv` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Varios ejemplos de transferencia y monitoreo de datos utilizando el comando pv.

Monitoreo básico del progreso

dd if=/dev/urandom bs=1M count=100 | pv > /dev/null

Verifica el progreso enviando datos generados por el comando dd a /dev/null con pv.

Monitoreo del progreso de copia de archivos

pv large_file.iso > copied_file.iso

Muestra el progreso al copiar un archivo grande usando pv. (Reemplace con la ruta real del archivo)

Limitación de la velocidad de transferencia de datos

dd if=/dev/zero bs=1M count=500 | pv -L 1m > /dev/null

Monitorea el progreso mientras limita la velocidad de transferencia de datos a 1 MB por segundo.

Monitoreo del progreso de la tarea de compresión

tar -czf - my_directory | pv -s $(du -sb my_directory | awk '{print $1}') > archive.tar.gz

Verifica el progreso con pv al comprimir un directorio usando tar y gzip. (Reemplace con la ruta real del directorio)

Especificar tamaño total para verificar ETA preciso

dd if=/dev/urandom bs=1M count=500 | pv -s 500M > /dev/null

Al informar a pv que el tamaño total de los datos es 500 MB, se obtiene un progreso y un tiempo estimado de finalización más precisos.

Instalación

pv no está incluido por defecto en la mayoría de las distribuciones de Linux, por lo que debe instalarse a través del administrador de paquetes.

Comandos de instalación

Comandos de instalación para cada sistema operativo.

  • Debian/Ubuntu: sudo apt update && sudo apt install pv
  • CentOS/RHEL/Fedora: sudo yum install pv o sudo dnf install pv
  • Arch Linux: sudo pacman -S pv
  • macOS (Homebrew): brew install pv

Consejos y precauciones

Consejos y puntos a tener en cuenta para usar pv de manera más efectiva.

Consejos de uso

  • **Insertar en medio de la canalización**: Puede monitorear el progreso de una etapa específica insertando pv en medio de la canalización en el formato `command1 | pv | command2`.
  • **Usar -s para ETA preciso**: Al combinar con el comando `du`, como `pv -s $(du -sb large_dir | awk '{print $1}')`, puede obtener un ETA más preciso especificando el tamaño total dinámicamente.
  • **Gestionar el ancho de banda limitando la velocidad**: Al transferir datos por red, puede reducir el impacto en otros servicios ajustando el ancho de banda con la opción `-L`.
  • **Monitorear archivos directamente**: Si proporciona el nombre del archivo como argumento, como `pv file.ext`, puede monitorear el progreso de lectura de ese archivo.

Precauciones

  • **Problemas de búfer**: Algunos comandos realizan su propio búfer, lo que puede hacer que el progreso de pv se muestre de manera diferente a la esperada. En este caso, debe verificar las opciones de búfer de ese comando.
  • **Interferencia de salida de terminal**: Dado que pv muestra continuamente el progreso en la terminal, al usar pv en scripts, es posible que deba suprimir la salida usando opciones como `-q` (quiet).

Comandos de la misma categoría