Startseite > Umgebung & Hilfsprogramme > pv

pv: Überwachung des Fortschritts von Pipe-Daten

pv (Pipe Viewer) ist ein Werkzeug zur Überwachung des Fortschritts von Daten, die durch eine Pipe geleitet werden. Es zeigt Datenrate, insgesamt übertragene Datenmenge und geschätzte Abschlusszeit in Echtzeit an und hilft so, den Fortschritt langlaufender Aufgaben visuell zu verfolgen.

Übersicht

pv liest Daten von der Standardeingabe und leitet sie an die Standardausgabe weiter, während es gleichzeitig den Datenfluss misst und den Fortschritt auf dem Terminal anzeigt. Dies ist besonders nützlich für langwierige Aufgaben wie das Kopieren großer Dateien, Komprimierung oder Netzwerkübertragungen.

Hauptfunktionen

  • Anzeige der Echtzeit-Datenrate
  • Anzeige der insgesamt übertragenen Datenmenge
  • Bereitstellung einer Fortschrittsleiste und geschätzten Abschlusszeit (ETA)
  • Funktion zur Begrenzung der Datenübertragungsgeschwindigkeit

Wichtige Optionen

Die wichtigsten Optionen des pv-Befehls werden zur Steuerung der Anzeige, zur Geschwindigkeitsbegrenzung und zur Angabe der Größe verwendet.

Anzeige und Steuerung

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`pv` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Verschiedene Beispiele für Datenübertragung und Überwachung mit dem pv-Befehl.

Grundlegende Fortschrittsüberwachung

dd if=/dev/urandom bs=1M count=100 | pv > /dev/null

Überwacht den Fortschritt, indem mit dd generierte Daten nach /dev/null geleitet und mit pv verfolgt werden.

Fortschritt der Dateikopie überwachen

pv large_file.iso > copied_file.iso

Zeigt den Fortschritt beim Kopieren einer großen Datei mit pv an. (Ersetzen Sie dies durch den tatsächlichen Dateipfad)

Datenübertragungsgeschwindigkeit begrenzen

dd if=/dev/zero bs=1M count=500 | pv -L 1m > /dev/null

Überwacht den Fortschritt, während die Datenübertragungsgeschwindigkeit auf 1 MB pro Sekunde begrenzt wird.

Fortschritt der Komprimierung überwachen

tar -czf - my_directory | pv -s $(du -sb my_directory | awk '{print $1}') > archive.tar.gz

Überwacht den Fortschritt mit pv beim Komprimieren eines Verzeichnisses mit tar und gzip. (Ersetzen Sie dies durch den tatsächlichen Verzeichnispfad)

Genaue ETA durch Angabe der Gesamtgröße erhalten

dd if=/dev/urandom bs=1M count=500 | pv -s 500M > /dev/null

Gibt pv die Gesamtgröße von 500 MB an, um genauere Fortschritts- und ETA-Informationen zu erhalten.

Installation

pv ist auf den meisten Linux-Distributionen nicht standardmäßig enthalten und muss über den Paketmanager installiert werden.

Installationsbefehle

Installationsbefehle für jedes Betriebssystem.

  • Debian/Ubuntu: sudo apt update && sudo apt install pv
  • CentOS/RHEL/Fedora: sudo yum install pv oder sudo dnf install pv
  • Arch Linux: sudo pacman -S pv
  • macOS (Homebrew): brew install pv

Tipps & Hinweise

Tipps und Hinweise zur effektiveren Nutzung von pv.

Nützliche Tipps

  • **Zwischenschaltung in der Pipeline**: Sie können pv in der Mitte einer Pipeline mit `command1 | pv | command2` einfügen, um den Fortschritt eines bestimmten Schritts zu überwachen.
  • **Verwendung von -s für genaue ETA**: Durch die dynamische Angabe der Gesamtgröße in Kombination mit Befehlen wie `du`, z.B. `pv -s $(du -sb large_dir | awk '{print $1}')`, erhalten Sie genauere ETA-Werte.
  • **Bandbreitenverwaltung durch Geschwindigkeitsbegrenzung**: Bei Netzwerkübertragungen können Sie die Bandbreite mit der Option `-L` steuern, um die Auswirkungen auf andere Dienste zu reduzieren.
  • **Direkte Überwachung von Dateien**: Wenn Sie einen Dateinamen als Argument angeben, z.B. `pv file.ext`, können Sie den Lesefortschritt dieser Datei überwachen.

Hinweise

  • **Pufferungsprobleme**: Einige Befehle führen eine eigene Pufferung durch, was dazu führen kann, dass der Fortschritt von pv anders als erwartet angezeigt wird. In diesem Fall sollten Sie die Pufferungsoptionen des betreffenden Befehls überprüfen.
  • **Störung der Terminalausgabe**: Da pv kontinuierlich den Fortschritt auf dem Terminal ausgibt, müssen Sie möglicherweise Optionen wie `-q` (quiet) verwenden, um die Ausgabe in Skripten zu unterdrücken.

Gleiche Kategorie Befehle