Aperçu
pv lit les données de l'entrée standard et les transmet à la sortie standard, tout en mesurant le flux de données et en affichant la progression sur le terminal. Ceci est particulièrement utile pour les opérations longues comme la copie de fichiers volumineux, la compression ou les transferts réseau.
Fonctionnalités principales
- Affichage du débit de données en temps réel
- Affichage de la quantité totale de données transférées
- Barre de progression et temps d'achèvement estimé (ETA)
- Fonction de limitation de la vitesse de transfert des données
Options principales
Les options principales de la commande pv sont utilisées pour contrôler l'affichage des données, limiter la vitesse et spécifier la taille.
Affichage et contrôle
Commande générée :
Essayez de combiner les commandes.
Description:
`pv` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Divers exemples d'utilisation de la commande pv pour le transfert et la surveillance des données.
Surveillance de progression de base
dd if=/dev/urandom bs=1M count=100 | pv > /dev/null
Vérifie la progression des données générées par la commande dd en les envoyant vers /dev/null avec pv.
Surveillance de la progression de la copie de fichier
pv large_file.iso > copied_file.iso
Affiche la progression lors de la copie d'un fichier volumineux à l'aide de pv. (Remplacez par le chemin réel du fichier)
Limitation de la vitesse de transfert des données
dd if=/dev/zero bs=1M count=500 | pv -L 1m > /dev/null
Surveille la progression tout en limitant la vitesse de transfert des données à 1 Mo par seconde.
Surveillance de la progression de la compression
tar -czf - my_directory | pv -s $(du -sb my_directory | awk '{print $1}') > archive.tar.gz
Vérifie la progression avec pv lors de la compression d'un répertoire à l'aide de tar et gzip. (Remplacez par le chemin réel du répertoire)
Spécifier la taille totale pour un ETA précis
dd if=/dev/urandom bs=1M count=500 | pv -s 500M > /dev/null
Indique à pv que la taille totale des données est de 500 Mo pour obtenir une progression et un temps d'achèvement estimé plus précis.
Installation
pv n'est pas inclus par défaut dans la plupart des distributions Linux, il doit donc être installé via le gestionnaire de paquets.
Commandes d'installation
Commandes d'installation pour chaque système d'exploitation.
- Debian/Ubuntu: sudo apt update && sudo apt install pv
- CentOS/RHEL/Fedora: sudo yum install pv ou sudo dnf install pv
- Arch Linux: sudo pacman -S pv
- macOS (Homebrew): brew install pv
Conseils et précautions
Conseils et points à considérer pour utiliser pv plus efficacement.
Conseils d'utilisation
- **Insertion au milieu d'un pipeline** : Vous pouvez insérer pv au milieu d'un pipeline comme `command1 | pv | command2` pour surveiller la progression d'une étape spécifique.
- **Utiliser -s pour un ETA précis** : En combinant avec la commande `du` comme `pv -s $(du -sb large_dir | awk '{print $1}')`, vous pouvez obtenir un ETA plus précis en spécifiant dynamiquement la taille totale.
- **Gérer la bande passante avec la limitation de vitesse** : Lors des transferts réseau, l'utilisation de l'option `-L` pour ajuster la bande passante peut réduire l'impact sur d'autres services.
- **Surveillance directe de fichiers** : En passant le nom du fichier comme argument, par exemple `pv file.ext`, vous pouvez surveiller la progression de la lecture de ce fichier.
Précautions
- **Problèmes de mise en mémoire tampon** : Certaines commandes effectuent leur propre mise en mémoire tampon, ce qui peut entraîner un affichage de progression de pv différent de celui attendu. Dans ce cas, il faut vérifier les options de mise en mémoire tampon de la commande concernée.
- **Interférence avec la sortie du terminal** : pv affiche en permanence la progression sur le terminal. Lors de l'utilisation de pv dans des scripts, il peut être nécessaire de supprimer la sortie en utilisant des options comme `-q` (quiet).