Home > Linux >

Linux pipe Bandbreite limitieren und Status/Speed anzeigen

Ich wollte heute mit dd und ssh ein block device von Server-1 nach Server-2 kopieren. Dabei wollte ich zum einen die Bandbreite über die ssh Verbindung auf 100Mbit/s limitieren und zum anderen kontinuierlich den Status beobachten.

Dabei zeigte sich pv als brauchbares Tool und genau das Werkzeug das ich brauche.

Die fertige Zeile sieht so aus:

dd if=/dev/System/lv1 bs=4M | pv -s 100g -L 12m | ssh root@ip 'dd of=/dev/System/lv2 bs=4M'
pv -s 100g -L 12m # <= Das Block Device ist 100GB groß, was pv wissen muss um die Progressbar darstellen zu können. 12,5 MB/s entspricht 100Mbit/s. Da pv nur Integer möchte, nehme ich 12m

Das ganze funktioniert natürlich auch zusammen mit tar, gzip oder nc. Genial für alle Programme die diese Funktionen nicht mitbringen.

Ihnen hat der Artikel gefallen oder weitergeholfen? Dann flattr'n Sie ihn doch
Sie wissen nicht, was Flattr ist? Hier erfahren Sie mehr:
KategorienLinux
  1. Andre
    2. November 2012, 09:27 | #1

    Hallo,

    Der Pipe-Viewer (pv) hat doch schon eine integrierte Bandbreitenlimitierung mit dem Parameter -L.

    -L RATE, –rate-limit RATE
    Limit the transfer to a maximum of RATE bytes per second. A suffix of „k“, „m“, „g“, or „t“ can be
    added to denote kilobytes (*1024), megabytes, and so on.

    Folgende Beispiele begrenzen den Durchsatz auf 13 MB/s.

    dd if=/dev/System/lv1 bs=4M | pv -L 13m | ssh root@ip ‚dd of=/dev/System/lv2 bs=4M‘
    pv -petrab -L 13m /dev/null

  2. Andre
    2. November 2012, 09:32 | #2

    Komisch, beim 2. Beispiel mag er die „größer als“- und „kleiner als“-Zeichen nicht…
    Ich wollte /dev/zero einlesen und nach /dev/null ausgeben.

  3. 18. März 2013, 15:19 | #3

    Danke für die Info :-)
    Das ist natürlich noch einfacher und ich habe den Artikel eben angepasst

  1. Bisher keine Trackbacks