Häufig hat man das Problem das man nicht weis wie lange den ein dd noch brauchen wird um die Platte zu spiegeln, oder wie schnell der Datentransfer via netcat überhaupt läuft. Genau hierfür wurde das kleine Tool pv geschrieben welches den Datendurchsatz von pipes messen kann.

Ich selbst muss leider gestehen das ich dieses prima Tool bis letzten Sonntag noch nicht mal kannte und eher zufällig von guten bekannten davon erfahren habe.

pv ist bei Ubuntu im universe, bei Debian im main und bei Arch im community Repository zu finden. Es benötigt nur wenige KByte auf der Festplatte und ist daher auf jedem System verwendbar.

Ich werde hier nicht die Manpage 1:1 runterleiern und nur die 2 häufigsten Verwendungsarten anschneiden, welche man im täglichen Alltag verwenden dürfte.

Das eine ist ein Ersatz für das gute alte cat welches wohl jeder Leser dieses Blog kennen dürfte:

pv dateiname | nc -w 1 serveradresse portnummer
Hier erkennt pv selbständig wie groß dateiname eigentlich ist und baut einen schönen Ladebalken damit der anzeigt wie lange der Transfer bzw. die Verarbeitung noch dauert. Bei Special Files wie z.b. named Pipes oder einfach nur Device Files wird dies natürlich nicht gehen und man sieht nur einen Balken der hin und her wandert, wie man es von zahlreichen grafischen Oberflächen gewöhnt ist.

Die andere Variante hängt Inline in der Pipe und zeigt natürlich die gleichen Daten an:

cat dateiname | pv | nc -w 1 serveradresse portnummer
Nachteilig ist natürlich das man hier nicht sieht wie lange der Transfer noch dauert, was logisch ist da über die Pipes ja keine Größeninformationen ausgetauscht werden. Wenn man natürlich weis welche Datenmenge übertragen wird kann man das pv mit auf den Weg geben:
cat dateiname | pv -s 200m | nc -w 1 serveradresse portnummer
Und schon hat man wieder den schönen Ladebalken, wenn man Sachen natürlich zuvor durch ein Kompressionstool wie gzip,bzip2 oder xz jagt ist der Ladebalken natürlich bestenfalls ein Schätzeisen im Glastkugelmodus.

Es gibt noch einige zusätzliche Schalter in der Manpage von pv, doch die wird man eher selten benötigen ;-)