Imaginez ce scénario. Vous essayez de copier un fichier volumineux d'un répertoire à un autre ou d'un système à un autre via la ligne de commande. Comme vous le savez probablement, vous ne verrez aucune indication de tâche de copie si vous utilisez la commande 'cp'. Vous verrez juste un écran vide. Vous ne pouvez pas être sûr que le processus de copie est en cours ou non tant que le processus de copie n'est pas terminé. Dans de tels cas, vous pouvez utiliser pv commande pour surveiller la progression des données. Le pv, acronyme de p ipe v iewer, la commande permet à un utilisateur de voir la progression des données à travers un pipeline, en donnant les informations suivantes :
- temps total écoulé,
- pourcentage réalisé (avec barre de progression),
- taux de débit actuel,
- total des données transférées,
- et heure d'arrivée prévue.
Dans ce bref tutoriel, nous verrons comment et où utiliser la commande pv pour surveiller la progression des données dans les systèmes de type Unix.
Télécharger - Cheat Sheet gratuit :"Linux Command Line Cheat Sheet"
Installer pv sous Linux
La plupart des distributions Linux modernes sont préinstallées avec la commande pv. Juste au cas où s'il n'est pas déjà installé, vous pouvez l'installer en exécutant la commande suivante à partir de votre terminal en fonction de la distribution Linux que vous utilisez.
Sur Arch Linux, Antergos, Manjaro Linux :
$ sudo pacman -S pv
Sur RHEL, CentOS, Fedora :
$ sudo yum install pv
Ou,
$ sudo dnf install pv
Sur Debian, Linux Mint, Ubuntu :
$ sudo apt-get install pv
Sur SUSE, ouvrez SUSE :
$ sudo zypper in pv
Maintenant, nous avons installé pv. Laissez-moi vous montrer quelques exemples.
Surveiller la progression des données via un canal à l'aide de la commande 'pv'
Regardez la sortie de la commande suivante :
$ cp CentOS7.iso Downloads/
commande cp
Cette commande copie l'image ISO CentOS 7 dans Téléchargements répertoire dans mon système local. Comme vous le voyez dans la sortie ci-dessus, aucune barre de progression n'est affichée. Vous ne verrez que le curseur clignoter. Nous ne savons pas combien de temps le processus de copie prendra. Cela peut parfois être ennuyeux car nous ne voyons aucun signe de la fin de cette commande. C'est là que la commande pv vient en aide. La commande pv vous montrera la progression des commandes Linux et vous montrera quand la commande Linux se terminera. Ainsi, vous pouvez quitter le terminal et effectuer d'autres tâches et revenir lorsque la tâche est terminée.
Maintenant, faisons la même chose avec pipe viewer (pv), et voyons quelle est la sortie.
$ pv CentOS7.iso > Downloads/centos.iso
Surveiller la progression des données via un canal à l'aide de la commande 'pv'
Vous voyez, vous voyez la différence ? Comme je l'ai dit, la commande pv affiche le temps total écoulé, le pourcentage terminé (avec barre de progression), le débit actuel, le total des données transférées et l'ETA.
Laissez-moi vous donner d'autres exemples.
Nous pouvons limiter le taux de transfert de données en utilisant -L commutateur comme indiqué dans l'exemple ci-dessous.
$ pv -L 2m CentOS7.iso > Downloads/centos.iso
La commande ci-dessus limitera le taux de transfert de données à 2 Mo par seconde . Regardez la sortie suivante.
Limitez le taux de transfert de données à l'aide de la commande pv
Si vous avez plusieurs fichiers ou répertoires, vous pouvez utiliser pv avec la commande tar comme indiqué ci-dessous :
$ tar c Notebooks/ | pv | tar x -C Documents/
La commande ci-dessus va compresser le répertoire Notebooks, le copier dans le répertoire Documents et enfin extraire le contenu.
Voici un autre exemple. Cette commande créera une archive du fichier CentOS7.iso et enregistrez-le dans le répertoire de travail actuel.
$ pv CentOS7.iso | zip > centos.zip
créer un fichier d'archive à l'aide de la commande pv
Vous pouvez également utiliser pv avec la commande dd pour copier des fichiers entre des répertoires comme ci-dessous. Cette commande copie le fichier CentOS7.iso du répertoire actuel vers le répertoire Téléchargements.
$ dd if=CentOS7.iso | pv | dd of=Downloads/centos7.iso
utilisez la commande pv avec la commande dd pour copier des fichiers entre les répertoires
Une autre commande utile pour afficher la progression des données est dialog . Nous pouvons l'utiliser avec la commande pv pour afficher la progression des données comme ci-dessous.
$ tar -czf - Official/ | (pv -n > mybackup.tgz) 2>&1 | dialog --gauge "Compressing files, please wait..." 10 70 0
Exemple de résultat :
utilisez la commande dialog avec la commande pv pour afficher la progression des données
Pour plus de détails, reportez-vous aux pages de manuel.
$ man pv
Consultez également notre guide précédent pour transférer rapidement des fichiers volumineux entre deux systèmes distants via le réseau à l'aide de netcat. , goudron , et vp commandes dans les systèmes d'exploitation Linux et Unix.
- Comment transférer rapidement des fichiers volumineux sur le réseau sous Linux et Unix
Mise à jour :
La barre de progression des commandes "cp" et "mv" peut être facilement ajoutée à l'aide d'un correctif nommé "Advanced Copy" . Pour plus de détails, consultez le lien suivant.
- Copie avancée – Ajouter une barre de progression aux commandes cp et mv sous Linux