Comment surveiller la progression des commandes Linux (avec pv et progrès)

Contenu

Invite de commande de terminal Linux sur un ordinateur portable

Au lieu de voler à l'aveugle, utiliser Linux pv et progress commandes pour suivre la progression d'une commande. Ces utilitaires vous donneront des barres de progression pour les commandes qui n'en ont pas régulièrement. Vous verrez également une estimation du temps jusqu'à l'achèvement.

Si vous êtes sur un vol long-courrier dans un avion sans écrans vidéo au dos des sièges, il n'est pas facile de savoir à quelle distance vous êtes de votre voyage. Tu sais quand tu as décollé. Vous savez combien de temps le vol devrait prendre. Mais, Comment savoir si vous êtes sur la bonne voie, à l'heure ou très tard? Si vous ne voulez pas voir le film pendant le vol, vous pouvez généralement changer l'écran vidéo pour afficher une carte avec la position de votre avion dessus. Vous obtenez également des statistiques, comme l'heure d'arrivée prévue (ET), qui est genial.

Lancer une commande depuis la fenêtre du terminal peut parfois ressembler à un vol long-courrier sans écran vidéo. Il n'a rien pour indiquer si tout va bien ou si la procédure a planté, ni à quel point est-il proche de l'achèvement. Un curseur clignotant n'est pas très informatif.

Les pv et progress Les commandes vous donnent des statistiques et des retours visuels. Vous pouvez voir à quel point la procédure est proche de terminer. Cela signifie que vous obtenez un ETA pour vos processus en cours d'exécution. Comparé à regarder un curseur, qui gagne sans aucun doute.

installation photovoltaïque

Vous devez installer pv.

Installer pv dans Ubuntu, utilisez cette commande:

sudo apt-get installer pv

Installer pv dans Fedora, utilisez cette commande:

sudo dnf installer pv

Installer pv à Manjaro, utilisez cette commande:

sudo pacman -Syu pv

en utilisant pv

pv Cela représente visionneuse de tuyaux. Le pipeline doit être impliqué dans la commande quelque part. Voici un exemple où nous passons une image ISO à travers zip pour faire un fichier zip compressé de l'ISO.

Pour ralentir suffisamment les commandes pour pouvoir faire une capture d'écran, certains des exemples de fichiers utilisés pour cet article ont été stockés sur une vieille clé USB externe lente appelée SILVERXHD.

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | Zip *: français > gparted.zip

L'information pv nous donne peut être vu dans la ligne du bas de l'écran.

De gauche à droite, les informations affichées sont:

  • Données transférées jusqu'à présent.
  • Le temps a passé jusqu'à maintenant.
  • Le taux de transfert de données (performance).
  • Une barre de progression et un pourcentage d'achèvement.
  • Le temps estimé restant avant l'achèvement (ET).

Copier un fichier avec pv

Pour copier un fichier avec une sortie de pv, utilise cette commande:

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

Nous obtenons un rapport d'avancement au fur et à mesure que le fichier est copié.

copier un fichier avec pv dans une fenêtre de terminal vous

Copier plusieurs fichiers avec pv

Pour copier plusieurs fichiers et dossiers avec pv nous devons utiliser une petite astuce. Nous utilisons tar déplacer les fichiers pour nous.

tar -c fichiers-aide/ | pv | tar -x -C Documents/

Les tar -c help-files/ une partie de la commande indique tar créer (-c) un fichier parmi les fichiers du dossier des fichiers d'aide. Ceci est canalisé par pv afin que nous obtenions une visualisation de l'avancement. Il est ensuite renvoyé vers tar pour la dernière partie de la commande. Le fichier est extrait (-x) et le répertoire est changé (-C) a Documents avant extraction.

Pour cela, les fichiers et dossiers qui se trouvent dans les fichiers d'aide sont copiés dans le dossier Documents, avec un écran de progression.

La sortie est légèrement différente cette fois.

Nous n'obtenons pas d'ETA. La barre de progression affiche maintenant un indicateur mobile. Indique que la procédure est active, mais il n'évolue pas de gauche à droite comme une barre de progression traditionnelle. pv il se limite à montrer les informations qu'il peut extraire de la procédure qui est canalisée.

Utiliser pv et tar pour créer une archive

Copier des fichiers avec pv et tar ne nous laisse pas avec un fichier d'archive. Une sorte d'archive “virtuel” est créé par tar, qui est retourné directement à tar pour extraire les fichiers. Si notre objectif est de copier des fichiers, qui est atteint. Mais, Que faire si nous voulons créer un fichier d'archive?

On peut encore utiliser tar pour créer un fichier d'archive et obtenir un rapport d'avancement de pv. Alternatives utilisées avec tar est-ce ainsi -c (créer un fichier), -z (compresser avec gzip) et -f (fichier nom de fichier).

Veuillez noter que nous utilisons - comme nom de fichier, Qu'est-ce qui cause tar utiliser sortie standardet écrire sa sortie dans la fenêtre du terminal. Nous ne voyons pas cet exutoire parce qu'il est canalisé par pv.

Le nom réel du fichier sera le nom du fichier à partir duquel nous redirigeons la sortie pv Dans. Pour ce cas, il est “fichiers-aide.tgz”.

goudron -czf - ./fichiers-d'aide/ | pv > fichiers-aide.tgz

Nous obtenons les mêmes indicateurs de progression qu'auparavant et l'archive est créée pour nous.

EN RELATION: Comment compresser et extraire des fichiers à l'aide de la commande tar sous Linux

Les alternatives d'affichage pv

Il y a plusieurs options que vous pouvez utiliser avec pv pour modifier les détails de votre rapport.

Si vous utilisez l'une de ces options, toutes les autres options sont désactivées. Ensuite, si vous souhaitez utiliser trois des alternatives d'affichage, vous devez spécifier ces trois options.

À l'aide de pv sans aucune option revient à utiliser le -pterb options.

  • -page: montrer le Pourcentage plein. Il s'agit de la barre de progression et du pourcentage d'achèvement.
  • -t: montre le temps écoulé conditions météorologiques.
  • -moi: montrer le ET.
  • -r: montrer le indice transfert de données.
  • -B: montrer le octet raconter (données transférées jusqu'à présent).
  • -Nord: indique le pourcentage sous forme de entier. Cela imprime le pourcentage achevé sous la forme d'un nombre entier., à chaque nouvelle mise à jour sur une nouvelle ligne.

Répétons la dernière commande et passons le -p (pourcentage achevé) option pour pv.

goudron -czf - ./fichiers-d'aide/ | pv - p > fichiers-aide.tgz

Cela désactive toutes les autres options d'affichage. pv ne fournit que l'élément en pourcentage achevé.

Dû au fait que pv n'obtient pas un pourcentage complet de tar, la barre de progression est remplacée par un indicateur mobile. Il n'y a pas de pourcentage.

Utilisation de pv avec toilettes

On peut utiliser pv diriger un fichier texte (ou des fichiers) une wc. wc Ensuite il comptera les retours chariot, caractères et mots et pv nous fera un rapport d'étape.

Ici, nous canalisons tous les fichiers “.page” dans le répertoire des fichiers d'aide à wc.

Lorsque wc plein, nous pouvons voir notre nombre de retours chariot (lignes), caractères et mots de tous les fichiers ".page" dans le dossier des fichiers d'aide.

Progresser l'installation de la commande

Les progress commande donne le même genre de information utile Quoi pv, mais cela fonctionne avec un ensemble spécifique de commandes Linux.

Installer progress sous Ubuntu, utilise cette commande:

progression de l'installation sudo apt-get

Installer progress à Fedora, utilise cette commande:

progression de l'installation de sudo dnf

sudo dnf installe la progression dans une fenêtre de terminal

Installer progress à Manjaro, utilise cette commande:

sudo pacman -Syu progrès

La progression de la commande fonctionne avec

Dactylographie progress dans une fenêtre de terminal et appuyez sur Entrée vous donnera une liste des commandes qui progress ça marche avec.

le progrès

Utiliser le progrès avec des tuyaux

Il existe deux techniques que nous pouvons utiliser pour surveiller les commandes avec progress. La première consiste à utiliser des tuyaux.

Les tar La commande est dans la liste des commandes prises en charge qui progress peut surveiller, utilisons donc tar.

Les alternatives que nous utiliserons sont les standards -c (créer un fichier), -z (compresser avec gzip) et -f (nom de fichier) options. Nous allons créer un fichier compressé de tout ce qui se trouve dans le dossier des fichiers d'aide, et le fichier s'appellera "help.tgz".

Nous canalisons cela dans progress et en utilisant le -m (surveiller) option comme celle-ci progress continue de rendre compte de la procédure jusqu'à ce qu'elle soit terminée.

tar -czf help.tgz ./help-files/ | progrès -m

La fenêtre du terminal affichera la progression de la tar commande lors de la création du fichier.

Au fur et à mesure que chaque fichier est traité, est répertorié avec les informations suivantes:

  • L'identifiant de la procédure.
  • Le nom de la procédure.
  • Pourcentage terminé.
  • Données traitées et taille totale du fichier.
  • Débit de données (performance).
  • Temps restant estimé (ET).

Vous serez peut-être surpris de voir apparaître un deuxième ensemble de données. Ce premier ensemble de données est pour tar. La seconde est pour gzip. tar appels gzip effectuer une compression. Dû au fait que gzip est dans la liste des commandes prises en charge, progress des rapports à ce sujet.

Utilisation de la progression en mode surveillance continue

Vous pouvez utiliser progress dans un mode de surveillance continue en temps réel à l'aide de l'option -M (surveiller).

Tapez la commande suivante dans une fenêtre de terminal:

progrès -M

progress ne signalera aucune commande en cours d'exécution pour surveiller. Mais il ne revient pas à la ligne de commande. progress attend qu'une commande qu'il puisse surveiller soit lancée. Ensuite, il commencera automatiquement à rapporter dessus.

Dans une autre fenêtre de terminal, écrire une commande qui se trouve dans la liste des commandes que la progression peut surveiller.

nous allons utiliser cat. Les commandes se terminant trop vite ne seront pas enregistrées avec progress, nous allons donc lister le contenu d'un très gros fichier texte.

mots de chat.page

Dans la fenêtre du terminal avec progress dans le, vous verrez les statistiques de cat commande pendant qu'elle s'exécute et fonctionne jusqu'à la fin.

Lorsque cat finir de lister le fichier progress retourne à son état d'attente.

Chaque fois que l'une des commandes sur lesquelles vous pouvez générer un rapport exécute une tâche considérable, progress vous surveillera et vous rapportera automatiquement.

C'est plutôt bien.

100% complété

Ne vous demandez plus comment fonctionne une commande de longue durée et arrêtez de regarder votre curseur avec pv et progress .

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.