pv : Avoir des informations sur le temps d'une tâche

Introduction



PV - pour Pipe Viewer - est un outil qui permet le suivi des données à travers un pipe. Il peut être inséré dans n'importe quel pipe normal, entre deux processus pour donner une indication visuelle de la rapidité avec laquelle les données transitent.

Il offre une estimation du temps restant.


Utilisation de pv



Utilisation : pv [OPTIONS] [FICHIER]...
Concatène FICHIER(s), ou l'entrée standard, sur la sortie standard
avec monitorage.

De manière simple, c'est équivalent à la commande cat avec une barre de progression
-p, --progress affiche la barre de progression
-t, --timer affiche le temps écoulé
-e, --eta affiche l'heure approximative de l'achèvement de
la tâche
-r, --rate affiche le taux de tranfert des données
-a, --average-rate show data transfer average rate counter
-b, --bytes affiche le nombre d'octets transférés
-f, --force imprime vers la sortie d'erreur même si ce n'est
pas un terminal
-n, --numeric imprime en pourcentage, pas les informations
visuelles
-q, --quiet n'afficher aucune information de transfert
-c, --cursor utiliser les séquences d'échappements de
positionnement de curseur
-W, --wait ne rien afficher avant qu'au moins un octet soit
tranféré
-s, --size TAILLE ajuste la taille estimée des données à TAILLE
octets
-l, --line-mode compte les lignes au lieu des octets
-i, --interval SEC mise-à-jour toute les SEC secondes
-w, --width LARGEUR présumer la largeur du terminal à LARGEUR
caractères
-H, --height HAUTEUR présumer la hauteur du terminal à HAUTEUR lignes
-N, --name NOM préfixer les informations visuelles avec NOM

-L, --rate-limit TAUX limite le taux de transfer à TAUX octets par
seconde
-B, --buffer-size OCTETS Utiliser une mémoire tampon de OCTETS octets
-R, --remote PID mettre-à-jour la configuration du processus PID

-h, --help afficher cette aide puis quitter
-V, --version afficher la version puis quitter



Quelques exemples



Copier un fichier avec progression pv



Pour copier un fichier, on va utiliser uniquement la commande pv :

Code BASH :
pv fic-source > fic-dest


Ce qui donne par exemple :

Code BASH :
pv Fedora-Cinnamon-Live-x86_64-24_Beta-1.6.iso > copie.iso
1.28GiO 0:00:02 [ 529MiB/s] [==========================>] 100%            



Créer une clé USB bootable avec dd et pv



Pour créer une clé USB (/dev/sdc) bootable d'une ISO Linux, la commande est :

Code BASH :
dd if=fichier-image-linux.iso of=/dev/sdc


Dorénavant, on peut utiliser avec pv pour avoir une progression de l'avancement de la copie :

Code BASH :
pv fichier-image-linux.iso | dd of=/dev/sdc


Ce qui donne en fin de copie ceci : (Imaginer le curseur ====> avancer au cours de la copie)

Code BASH :
pv fichier-image-linux.iso | dd of=/dev/sdc
1,41GiO 0:00:54 [26,5MiB/s] [=======================================================>] 100%            
2965504+0 enregistrements lus
2965504+0 enregistrements écrits
1518338048 octets (1,5 GB) copiés, 54,5804 s, 27,8 MB/s
 



Créer une archive compressée .tar.gz



Coupler tar et pv est possible, utiliser comme ceci :

Code BASH :
tar -czf - dossier | pv > archive.tar.gz



Décompresser une archive .tar.gz



Pour décompresser, même principe que la compression, mais à l'envers :

Code BASH :
pv sox.tar.gz |tar xzf -



Test funny !



Alors, à quelle vitesse votre ordinateur peut lire /dev/zero ?

Code BASH :
pv /dev/zero > /dev/null
315GiO 0:00:22 [14,4GiB/s] [                              <=>                                        ]



Importer une base de données



Si la base est grosse, l'utilisation de pv peut être pratique. Là, j'importe le fichier bdd.sql dans la base de données nommée bdd :

Code BASH :
pv bdd.sql | mysql bdd


En cours de route on observe :

Code BASH :
pv bdd.sql | mysql bdd
34,5MiO 0:00:08 [ 6,3MiB/s] [====================>                          ] 45% ETA 0:00:09


Exporter une base de données



Si la base est grosse, l'utilisation de pv peut être pratique. Là, j'exporte la base de données bdd dans le fichier bdd.sql :

Code BASH :
mysqldump bdd | pv > bdd.sql
Cette page a été vue 9767 fois