GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So überwachen Sie den Fortschritt von Daten durch eine Pipe mit dem Befehl „pv“.

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 netcattar , 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

Linux
  1. So erstellen Sie eine Datenbank in MySQL über die Befehlszeile

  2. So extrahieren Sie die tar.gz-Datei in Linux mithilfe der Befehlszeile

  3. So entfernen Sie Benutzer in Linux über die Befehlszeile

  4. Wie erhalte ich eine Anzahl von Dateien in einem Verzeichnis über die Befehlszeile?

  5. So verbinden Sie einen Remote-Host mit dem ssh-Befehl

So spielen Sie die aufgezeichneten Terminalsitzungen mit dem Scriptreplay-Befehl ab

So starten Sie Debian über die Befehlszeile neu

So verwenden Sie den nmap-Befehl

Wie installiere ich Google Chrome unter Ubuntu 18.04 über die Befehlszeile?

So schreiben Sie einfach Befehle mit dem Powershell-Cmdlet Show-command

So laden Sie Dateien in Rocky Linux 8 über die Befehlszeile mit wget herunter