Stellen Sie sich dieses Szenario vor. Sie versuchen, über die Befehlszeile eine große Datei von einem Verzeichnis in ein anderes oder von einem System in ein anderes zu kopieren. Wie Sie wahrscheinlich wissen, sehen Sie keinen Hinweis auf eine Kopieraufgabe, wenn Sie den Befehl „cp“ verwenden. Sie sehen nur einen leeren Bildschirm. Sie können nicht sicher sein, ob der Kopiervorgang läuft oder nicht, bis der Kopiervorgang abgeschlossen ist. In solchen Fällen können Sie pv verwenden Befehl, um den Fortschritt der Daten zu überwachen. Das pv, Akronym von p ipe v Der Befehl „iewer“ ermöglicht es einem Benutzer, den Fortschritt von Daten durch eine Pipeline zu sehen, indem er die folgenden Informationen bereitstellt:
- Gesamtzeit verstrichen,
- Prozentsatz abgeschlossen (mit Fortschrittsbalken),
- aktuelle Durchsatzrate,
- Gesamtdaten übertragen,
- und ETA.
In diesem kurzen Tutorial werden wir sehen, wie und wo der pv-Befehl verwendet wird, um den Datenfortschritt in Unix-ähnlichen Systemen zu überwachen.
Herunterladen - Kostenloser Spickzettel:"Linux-Befehlszeilen-Spickzettel"
pv unter Linux installieren
Die meisten modernen Linux-Distributionen sind mit dem Befehl pv vorinstalliert. Falls es noch nicht installiert ist, können Sie es installieren, indem Sie je nach verwendeter Linux-Distribution den folgenden Befehl von Ihrem Terminal aus ausführen.
Unter Arch Linux, Antergos, Manjaro Linux:
$ sudo pacman -S pv
Unter RHEL, CentOS, Fedora:
$ sudo yum install pv
Oder,
$ sudo dnf install pv
Unter Debian, Linux Mint, Ubuntu:
$ sudo apt-get install pv
Öffnen Sie unter SUSE SUSE:
$ sudo zypper in pv
Jetzt haben wir PV installiert. Lassen Sie mich Ihnen einige Beispiele zeigen.
Überwachen Sie den Fortschritt von Daten durch eine Pipe mit dem Befehl „pv“
Sehen Sie sich die Ausgabe des folgenden Befehls an:
$ cp CentOS7.iso Downloads/

cp-Befehl
Dieser Befehl kopiert das ISO-Image von CentOS 7 in Downloads Verzeichnis in meinem lokalen System. Wie Sie in der obigen Ausgabe sehen, wird kein Fortschrittsbalken angezeigt. Sie sehen nur den blinkenden Cursor. Wir wissen nicht, wie lange der Kopiervorgang dauern wird. Dies kann manchmal ärgerlich sein, da wir keine Anzeichen dafür sehen, wann dieser Befehl abgeschlossen wird. Hier kommt der pv-Befehl ins Spiel. Der pv-Befehl zeigt Ihnen den Fortschritt der Linux-Befehle und zeigt Ihnen, wann der Linux-Befehl abgeschlossen ist. So können Sie das Terminal verlassen und einige andere Aufgaben erledigen und zurückkommen, wenn die Aufgabe erledigt ist.
Lassen Sie uns nun dasselbe mit Pipe Viewer (pv) tun und sehen, was die Ausgabe ist.
$ pv CentOS7.iso > Downloads/centos.iso

Überwachen Sie den Fortschritt von Daten durch eine Pipe mit dem Befehl „pv“
Sehen Sie, verstehen Sie den Unterschied? Wie gesagt, der pv-Befehl zeigt die verstrichene Gesamtzeit, den abgeschlossenen Prozentsatz (mit Fortschrittsbalken), die aktuelle Durchsatzrate, die gesamten übertragenen Daten und die voraussichtliche Ankunftszeit an.
Lassen Sie mich Ihnen einige weitere Beispiele geben.
Mit -L können wir die Datenübertragungsrate begrenzen umschalten, wie im folgenden Beispiel gezeigt.
$ pv -L 2m CentOS7.iso > Downloads/centos.iso
Der obige Befehl begrenzt die Datenübertragungsrate auf 2 MB pro Sekunde . Sehen Sie sich die folgende Ausgabe an.

Begrenzen Sie die Datenübertragungsrate mit dem Befehl pv
Wenn Sie mehrere Dateien oder Verzeichnisse haben, können Sie pv mit dem tar-Befehl verwenden wie unten gezeigt:
$ tar c Notebooks/ | pv | tar x -C Documents/
Der obige Befehl komprimiert das Verzeichnis Notebooks, kopiert es in das Verzeichnis Documents und extrahiert schließlich den Inhalt.
Hier ist ein weiteres Beispiel. Dieser Befehl erstellt ein Archiv der CentOS7.iso-Datei und speichern Sie sie im aktuellen Arbeitsverzeichnis.
$ pv CentOS7.iso | zip > centos.zip

Erstellen Sie eine Archivdatei mit dem Befehl pv
Sie können pv auch mit dem dd-Befehl verwenden um Dateien zwischen Verzeichnissen wie unten zu kopieren. Dieser Befehl kopiert die CentOS7.iso-Datei aus dem aktuellen Verzeichnis in das Downloads-Verzeichnis.
$ dd if=CentOS7.iso | pv | dd of=Downloads/centos7.iso

Verwenden Sie den pv-Befehl mit dem dd-Befehl, um Dateien zwischen Verzeichnissen zu kopieren
Ein weiterer nützlicher Befehl zum Anzeigen des Datenfortschritts ist dialog . Wir können es zusammen mit dem Befehl pv verwenden, um den Fortschritt der Daten wie unten anzuzeigen.
$ tar -czf - Official/ | (pv -n > mybackup.tgz) 2>&1 | dialog --gauge "Compressing files, please wait..." 10 70 0
Beispielausgabe:

Verwenden Sie den Dialogbefehl mit dem Befehl pv, um den Fortschritt der Daten anzuzeigen
Weitere Einzelheiten finden Sie in den Manpages.
$ man pv
Lesen Sie auch unsere vorherige Anleitung zum schnellen Übertragen großer Dateien zwischen zwei Remote-Systemen über das Netzwerk mit netcat , tar , und pv Befehle in Linux- und Unix-Betriebssystemen.
- So übertragen Sie schnell große Dateien über das Netzwerk unter Linux und Unix
Aktualisierung:
Der Fortschrittsbalken für "cp"- und "mv"-Befehle kann einfach mit einem Patch namens "Advanced Copy" hinzugefügt werden . Einzelheiten finden Sie unter folgendem Link.
- Erweitertes Kopieren – Fortschrittsbalken zu cp- und mv-Befehlen in Linux hinzufügen