Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
20 juin 2016

Linux           Formater le contenu des fichiers


pv

pv

Superviser la progression des données via un pipe

   pv affiche la progression des données via un pipeline en donnant des informations tel que le temps passé, le pourcentage complété (avec barre de progression), Taux, total transféré, et ETA. Pour l'utiliser, l'insérer dans un pipeline entre 2 processus, avec les options appropriées. Son entrée standard sera passé à sa sortie standard et la progression sera affichée sur l'erreur standard. pv copie chaque fichier fournis en retour sur la sortie standard. Si aucun fichier n'est spécifié, copie simplement l'entrée standard, et fonctionne comme cat.

Options d'affichage

-p, --progress Active la barre de progression. Si l'entrée standard n'est pas un fichie et qu'aucune taille n'est donnée, la barre ne peut pas indiquer la progression, et se déplace donc de gauche à droite pour indique que les données sont en cours de déplacement
-t, --timer Active le timer. Affiche le temps passé total.
-e, --eta Active le timer ETA. Il tente de le deviner, basé sur les taux de transfert précédents et la taille totale des donnée.
-I, --fineta Active le timer ETA, mais affiche la date locale estimée de l'arrivée au lieu du temps passé.
-r, --rate Active le compteur de taux.
-a, --average-rate Affiche le compteur moyen de taux
-b, --bytes Affiche le compteur d'octets total
-T, --buffer-percent Active l'affichage du % de tampon transféré.
-A, --last-written NUM Affiche les dernier NUM octets écris
-F, --format FORMAT Ignore les options -p, -t, -e, -r, -a- -b, -T et -A et utilise le format spécifié pour déterminer le format de sortie.
-n, --numeric Sortie numérique. Au lieu de donner une indication visuelle de la progression, pv donne un entier en %, un par ligne, sur l'erreur standard.
-q, --quiet Pas de sortie. Utile avec -L

Options de sortie

-W, --wait Attend que le premier octet soit transféré avant d'afficher la barre de progression ou calculer tout ETA.
-D, --delay-start SEC Attend le délai spécifié avant afficher les informations de progression
-s SIZE, --size SIZE Assume que la quantité totale de données à transférer est SIZE octets en calculant les pourcentages et les ETA.
-l, --line-mode Au lieu de compter les octets, compte les lignes.
-0, --null Compte les lignes terminées par un caractère null. implique --line-mode
-i SEC, --interval SEC délai de mise à jours. (défaut: toutes les secondes)
-w WIDTH, --width WIDTH Assume que le terminal fait WIDTH caractères de large (défaut: 80 s'il ne peut pas le deviner)
-H HEIGHT, --height HEIGHT Assume que le terminal fait HEIGHT lignes de haut (défaut: 25 s'il ne peut pas le deviner)
-N NAME, --name NAME Préfixe les informations de sortie avec le nom spécifié.
-f, --force Force la sortie. Normalement, pv ne sort pas d'affichage visuel si l'erreur standard n'est pas un terminal.
-c, --cursor Utilise les séquences de positionning du curseur au lieu des retours charriot.

Options de transfert

-L RATE, --rate-limit RATE Limite le taux de transfert
-B BYTES, --buffer-size BYTES Utilise une taille de tampon de transfers à la taille spécifiée
-C, --no-splice N'utilise jamais splice(2), même si c'est possible. cet appel système est une manière plus efficace de transférer des données dans un pipe que read(2) et write(2), mais signifie que le tampon de transfert ne peut pas être utilisé. Cela empêche -A et -T de fonctionner.
-E, --skip-errors Ignore les erreurs de lecture en tentant de sauter ces sections. (similaire à dd conv=sync, noerror)
-S, --stop-at-size Si une taille est spécifiée avec -s, stop le transfert une fois cette taile atteinte.
-d PID[:FD], --watchfd PID[:FD] Au lieu de transférer des données, lit de descripteur de fichier du PID spécifié.
-R PID, --remote PID Si PID est une instance de pv qui est déjà en cours de fonctionnement, cette option force cette instance à agir comme si elle avait été donnée sur la ligne de commande.

Options générales

-P FILE, --pidfile FILE Sauve le PID de pv dans le fichier spécifié.

Formattage

   l'option -F permet de déterminer le format de sortie. les séquences suivantes peuvent être utilisées:

%p Barre de progression. Équivalent à -p
%t Temps passé. Équivalent à -e
%e Temps restant ETA. Équivalent à -e
%I Temps local ETA restant. Équivalent y -I
%r Taux de transfert de données courant. Équivalent à -r
%a Taux de transfert moyen des données. Équivalent à -a
%b Octets transférés. Équivalent à -b
%T % de tampon de transfert utilisé. Équivalent à -T
%nA Affiche les derniers n octets écrits.
%N préfix à ajouter. Équivalent à -N
%% le caractère %

Codes de sortie

1 Indique un problème avec les options -R ou -P
2 Un ou plusieurs fichiers ne peuvent pas être accedés, stat(2) ou ouverts
4 Un fichier d'entrée est le même que le fichier de sortie
8 Erreur interne avec la fermeture d'un fichier ou en passant au fichier suivant
16 Erreur en transférant des données
32 Un signal a fait quitté prématurément
64 Erreur d'allocation mémoire

Exemples

voir la vitesse de transfert de fichie avec nc:
pv file | nc -w 1 somewhere.com 3000
transférer un fichier d'un autre processus et passer la taille attendue à pv:
cat file | pv -s 12345 | nc -w 1 somewhere.com 3000
Exemple plus complexe utilisant une sortie numérique pour aller dans dialog pour un affichage de progression plein-écran
(tar cf - . | pv -n -s $(du -sb . | awk '{print $1}') | gzip -9 › out.tgz) 2›&1 | dialog --gauge 'Progress' 7 70
Prend une image d'un disque, en sautant les erreurs:
pv -EE /dev/sda › disk-image.img
Écrire une image dans un disque
pv disk-image.img › /dev/sda
Remplir un disque de 0. Noter que si l'entrée ne peut pas être calculée, et que la sortie est un périphérique block, la taile du périphérique block sera utilisé et pv stopera automatiquement à cette taille.
pv ‹ /dev/zero › /dev/sda
Voir le descripteur 3 ouvert par un autre processus:
pv -d 1234:3
Voir tous les descripteurs de fichier utilisés par le processus 1234
pv -d 1234