Ü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.