Linux Pipe Viewer (pv)

Aus Wiki Thomas-Krenn.AG
Wechseln zu: Navigation, Suche

Das Kommandozeilen Tool pv (Pipe Viewer) kann zwischen zwei Prozessen eingefügt werden um den Datenfluss visualisieren zu können. Alles was pv am Standard Input (stdin) erhält wird am Standard Output (stout) wieder ausgegeben. Der Fortschritt selbst wird auf Standard Error (stderr) ausgegeben.

Bei den meisten Distributionen wird dieses Tool nicht als Standard installiert. Unter Debian/Ubuntu kann es ganz einfach mittels apt-get install pv nachinstalliert werden.

Folgende Beispiele sollen die Verwendung erläutern.

Inhaltsverzeichnis

Fortschritt beim Entpacken mit bzip2

Dieses Beispiel entpackt den Linux Kernel in das aktuelle Verzeichnis, welcher als mit bzip2 komprimiertes tar-Archiv vorliegt.

$ pv linux-3.1.5.tar.bz2 | bzip2 -d | tar x
23.6MB 0:00:08 [3.12MB/s] [=========>                          ] 30% ETA 0:00:18

Fortschritt beim Packen mit gzip

Der folgende Befehl packt das Homeverzeichnis in ein mit gzip komprimiertes tar-Archiv.

$ tar cf - /home/ | pv | gzip > home.tar.gz
tar: Removing leading `/' from member names
52.3MB 0:00:02 [24.8MB/s] [     <=>           

ISO Image mit Fortschrittsanzeige erzeugen

Das folgende Beispiel erzeugt ein ISO Image der eingelegten CD und Zeigt den Fortschritt dabei an.

dd if=/dev/cdrom | pv --size 700M | dd of=test.iso
436MB 0:01:10 [7.6MB/s] [============================================>                            ] 62% ETA 0:00:56

Ähnliches kann auch mit einem speziellen kill Signal erreicht werden (siehe ISO_Image_von_CD_oder_DVD_unter_Linux_erstellen).

Lesen von /dev/null

Dieser Befehl zeigt wie schnell der Computer von /dev/null lesen kann.

pv /dev/zero > /dev/null
40GB 0:00:04 [  10GB/s] [      <=>                                                                                ]

Folgendes komplexes Beispiel ist in der Manpage angeführt mit dem ironischen Kommentar:

Frequent use of this third form is not recommended as it may cause the programmer to overheat.

              (tar cf - . \
               | pv -n -s $(du -sb . | awk '{print $1}') \
               | gzip -9 > out.tgz) 2>&1 \
              | dialog --gauge 'Progress' 7 70

Weiterführende Links


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge