Überwachen des Fortschritts einer Linux-Befehlszeilenoperation mithilfe des PV-Befehls
Wenn Sie ein Linux-Systemadministrator sind, besteht kein Zweifel, dass Sie den größten Teil Ihrer Arbeitszeit in der Befehlszeile verbringen müssen - Installieren und Entfernen von Paketen. Systemstatistiken überwachen; kopieren, verschieben, löschen; Debugging-Probleme; und mehr. Es gibt Zeiten, wenn Sie einen Befehl auslösen, und es dauert eine Weile, bis der Vorgang abgeschlossen ist. Es gibt jedoch auch Zeiten, in denen der Befehl, den Sie ausgeführt haben, einfach hängen bleibt und Sie raten lassen, was tatsächlich hinter den Kulissen passiert.
Normalerweise bieten Linux-Befehle keine Informationen zum Fortschritt der laufenden Operation, was besonders bei begrenzter Zeit sehr wichtig ist. Das bedeutet jedoch nicht, dass Sie hilflos sind - es gibt einen Befehl namens pv
, der nützliche Informationen zum Fortschritt der Befehlszeilenoperation anzeigt. In diesem Artikel werden wir diesen Befehl und seine Funktionen anhand einiger leicht verständlicher Beispiele erläutern.
PV-Befehl
Die von Andrew Wood entwickelte PV - die für Pipe Viewer steht - zeigt Informationen über den Fortschritt von Daten in einer Pipeline an. Die Informationen umfassen die verstrichene Zeit, den Fortschritt in Prozent (mit Fortschrittsbalken), die aktuelle Durchsatzrate, die insgesamt übertragenen Daten und die ETA.
"Um es zu verwenden, fügen Sie es in eine Pipeline zwischen zwei Prozessen mit den entsprechenden Optionen ein. Seine Standardeingabe wird zu seiner Standardausgabe weitergeleitet und der Fortschritt wird auf Standardfehler angezeigt "
Das obige erklärt die Manpage des Befehls.
Download und Installation
Benutzer von Debian-basierten Systemen wie Ubuntu können das Dienstprogramm leicht installieren, indem sie den folgenden Befehl im Terminal ausführen:
sudo apt-get installieren pv
Wenn Sie eine andere Linux-Distribution verwenden, können Sie den Befehl mithilfe des auf Ihrem System installierten Paketmanagers installieren. Nach erfolgreicher Installation können Sie das Befehlszeilendienstprogramm in verschiedenen Szenarien verwenden (siehe folgenden Abschnitt). Es ist erwähnenswert, dass in allen in diesem Artikel erwähnten Beispielen die Version 1.2.0 von pv verwendet wurde.
Funktionen und Verwendung
Ein sehr häufiges Szenario, das wahrscheinlich die meisten von uns (die unter Linux mit der Befehlszeile arbeiten) damit zu tun haben, ist das Kopieren einer Filmdatei von einem USB-Laufwerk auf Ihren Computer. Wenn Sie versuchen, die oben genannte Operation mit dem Befehl cp
, müssen Sie blind warten, bis der Kopiervorgang abgeschlossen ist oder ein Fehler auftritt.
In diesem Fall kann jedoch der Befehl pv
hilfreich sein. Hier ist ein Beispiel:
pv /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Und hier ist die Ausgabe:
Wie Sie oben sehen können, zeigt der Befehl eine Menge nützlicher Informationen über den laufenden Vorgang an, einschließlich der übertragenen Datenmenge, der verstrichenen Zeit, der Übertragungsrate, der Fortschrittsanzeige, des Fortschritts in Prozent und der Anzahl von übrige Zeit.
Der Befehl pv
stellt verschiedene Anzeigeschalter zur Verfügung. Sie können beispielsweise -p
für die Anzeige des Prozentsatzes, -t
für den Zeitgeber, -r
für die Übertragungsrate, -e
für eta und -b
für den Byte-Zähler verwenden. Das Gute daran ist, dass Sie sich an keine davon erinnern müssen, da alle standardmäßig aktiviert sind. Sollten Sie jedoch ausschließlich Informationen benötigen, die sich nur auf einen bestimmten Anzeigeschalter in der Ausgabe beziehen, können Sie diesen Schalter im Befehl pv
.
Es gibt auch einen Schalter -n
display, der es dem Befehl ermöglicht, anstelle des normalen visuellen Fortschrittsindikators einen ganzzahligen Prozentsatz anzuzeigen, einen pro Zeile bei Standardfehler. Das folgende ist ein Beispiel für diesen Schalter in Aktion:
pv -n /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Dieser spezielle Anzeigeschalter eignet sich für Szenarien, in denen die Ausgabe in den Dialogbefehl geleitet werden soll.
Weiter gibt es auch eine Befehlszeilenoption -L
, mit der Sie die Datenübertragungsrate des Befehls pv ändern können. Zum Beispiel habe ich -L
, um die Datenübertragungsrate auf 2MB / s zu begrenzen.
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv
Wie auf dem Screenshot oben zu sehen ist, wurde die Datenübertragungsrate nach meiner Richtung begrenzt.
Ein anderes Szenario, bei dem pv
helfen kann, ist das Komprimieren von Dateien. Hier ist ein Beispiel, wie Sie diesen Befehl beim Komprimieren von Dateien mit Gzip verwenden können:
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip> ./Desktop/fnf.log.gz
Fazit
Wie Sie gesehen haben, ist pv
ein nützliches kleines Dienstprogramm, das Ihnen helfen könnte, Ihre wertvolle Zeit zu sparen, falls sich eine Befehlszeilenoperation nicht wie erwartet verhält. Außerdem können die angezeigten Informationen auch in Shell-Skripts verwendet werden. Ich würde diesen Befehl dringend empfehlen; Es lohnt sich, es auszuprobieren.