09 Mar 2010
Abfragen des Fortschrittes eines Linux-Befehls wie dd
Den Fortschritt von dd abfragen: Wenn man mit dd Festplatten klont, kann das sehr lange dauern. Oft möchte man wissen, wie weit der Prozess fortgeschritten ist, und wielange es noch dauert.
Der Befehl dd unterstützt das Signal USR1, mit dem er den momentanen Fortschritt ausgibt. Dazu ein zweites Terminal aufmachen, die Prozess-ID des dd-Befehls abfragen und das USR1-Signal senden.
# dd if=myimage.img of=/dev/sda1
Ein zweites Terminal öffnen, dort eingeben:
# ps ax |grep -i [d]d
2 ? S< 0:00 [kthreadd]
2835 ? S 0:00 hald-addon-input: Listening on /dev/input/event2 /dev/input/event1 /dev/input/event0
2844 ? S 0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
2848 ? S 0:04 hald-addon-storage: polling /dev/hdc (every 2 sec)
3408 pts/1 R+ 26:55 dd if myrescue.img of /dev/sda1
die Prozess-ID des dd-Befehls ist 3408, jetzt eingeben:
# kill -USR1 3408
im ersten Terminal, in welchem dd gestartet wurde, kann nun der Augenblicks-Fortschritt von dd abgelesen werden, inklusive der Übertragungsrate, mit der sich die Gesamtdauer errechnen lässt.
# dd if=myimage.img of=/dev/sda1
133766556+0 records in
133766556+0 records out
68488476672 bytes (68 GB) copied, 1746.96 s, 39.2 MB/s
Happy Hacking!