21x9.org | System Administration | Home Automation | Smart Home
30.01.2013

CLI Adventures: Pipe Viewer

Mit Pive Viewer (pv) kann man sich eine Fortschrittsanzeige für einen beliebigen Datenstrom anzeigen lassen. Das kann z.B. praktisch sein um einen Fortschrittsbalken für dd zu erzeugen (ohne ständig kill -USR1 $pid benutzen zu müssen):

dd if=/dev/zero bs=3M count=1024 | pv -s 3G > zero

Hier wird ein Fortschrittsbalken erzeugt, der einen Datenstrom von 3GB erwartet (-s 3G):

1,32GB 0:00:04 [ 192MB/s] [##==>                     ] 44% ETA 0:00:05

Es ist auch möglich mehrere Datenströme zeitgleich anzeigen zu lassen:

dd if=/dev/zero bs=3M count=1024 | pv -s 3G -N dd | gzip - | pv -cN gzip > zero.gz

Hierbei wird wie zuvor eine 3GB-Datei über dd erzeugt, diese dann aber anschließend mit gzip gepackt. Auch hier entsteht ein Datenstrom welcher mit pv überwacht wird. Damit man die Datenströme unterscheiden kann wird über den Parameter -N noch jeweils ein Name vergeben:

     gzip: 1,22MB 0:00:12 [ 111kB/s] [         <=>                             ]
       dd: 1,23GB 0:00:12 [ 105MB/s] [#####>               ] 41% ETA 0:00:17

Da wir natürlich nicht wissen welche Größe die gepackte Datei später erreichen wird können wir hier keine Größe angegeben, daher gibt es auch keinen echten Fortschrittsbalken (und keine Restzeitangabe). Der Parameter -c sorgt dafür dass sich die beiden pv-Ausgaben nicht überlagern.Der pv-Befehl kann auch als Ersatz für cp genutzt werden:

pv /tmp/example.zip > /root/example.zip

Die Dateigröße ermittelt pv in diesem Fall automatisch selbst:

684MB 0:00:04 [ 170MB/s] [#####>            ] 69% ETA 0:00:01

Unter Debian wird pv ganz einfach mit apt-get install pv installiert.

Tags: imported

Tags

imported

Feeds

Atom 1.0 RSS JSON
  • Datenschutz
  • Impressum
  • Archiv