pv : Avoir des informations sur le temps d'une tâche
Table des matières
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.
L'outil pv n'est pas forcément inclus dans votre distribution Linux.
Pour Gentoo : sys-apps/pv
Pour Red Hat et dérivées : pv (dans EPEL)
Pour Debian, Fedora : pv dans les dépôts
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
Pour copier un fichier, on va utiliser uniquement la commande pv :
Ce qui donne par exemple :
Pour créer une clé USB (/dev/sdc) bootable d'une ISO Linux, la commande est :
Dorénavant, on peut utiliser avec pv pour avoir une progression de l'avancement de la copie :
Ce qui donne en fin de copie ceci : (Imaginer le curseur ====> avancer au cours de la copie)
Coupler tar et pv est possible, utiliser comme ceci :
Pour décompresser, même principe que la compression, mais à l'envers :
Alors, à quelle vitesse votre ordinateur peut lire /dev/zero ?
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 :
En cours de route on observe :
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 :
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.
Pour Gentoo : sys-apps/pv
Pour Red Hat et dérivées : pv (dans EPEL)
Pour Debian, Fedora : pv dans les dépôts
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
-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