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).