Linux Pipe Viewer (pv)
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.
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/zero
Dieser Befehl zeigt wie schnell der Computer von /dev/zero 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
Autor: Christoph Mitasch Christoph Mitasch arbeitet in der Abteilung Web Operations & Knowledge Transfer bei Thomas-Krenn. Er ist für die Betreuung und Weiterentwicklung der Webshop Infrastruktur zuständig. Seit einem Studienprojekt zum Thema Hochverfügbarkeit und Daten Replikation unter Linux beschäftigt er sich intensiv mit diesem Themenbereich. Nach einem Praktikum bei IBM Linz schloss er sein Diplomstudium „Computer- und Mediensicherheit“ an der FH Hagenberg ab. Er wohnt in der Nähe von Linz und ist neben der Arbeit ein begeisterter Marathon-Läufer und Jongleur, wo er mehrere Weltrekorde in der Team-Jonglage hält.
|