Commandes de base

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

Table des matières

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.

Installation



L'outil pv n'est pas forcément inclus dans votre distribution Linux.

Fedora, Red Hat et dérivées (EPEL nécessaire pour EL) :
Code BASH :
sudo dnf install pv


Debian, Ubuntu et dérivées :
Code BASH :
sudo apt install pv


Pour Gentoo :
Code BASH :
sudo emerge -av sys-apps/pv



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 :
1.28GiO 0:00:02 [ 529MiB/s] [==========================>] 100%            


Créer une clé USB bootable avec 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 > /dev/sdc


Ce qui donne en fin de copie ceci : (Imaginer le curseur ====> avancer au cours de la copie)
Code :
1,41GiO 0:00:54 [26,5MiB/s] [=======================================================>] 100%            


Copier un disque avec une limite de vitesse



Quand on copie un disque sur un autre, la commande pv envoie au max possible.
Seulement, parfois mes adaptateurs SATA/USB se déconnectent.

On peut limiter le débit avec l'option -L (exemple ici avec 40MiB/s) :
Code BASH :
pv -L 40M /dev/sdh > /dev/sdi


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

Code :
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 :
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 35140 fois