Nix
23-12-2004, 00:50
Hallo,
ich möchte ein kleines Script schreiben, bei dem ein User eine im Rechner 'steckende' CompactFlash-Karte per dd auf Festplatte sichern kann. Leider gibt es bei dd scheinbar keine Möglichkeit, direkt einen Status abzufragen. Da aber das Kopieren der Karte bei z.B. 1 GB Kapazität schon etwas dauert, möchte ich dem User schon ein Feedback geben.
In der Manpage zu dd steht, daß mit dem Signal USR1 ein Status auf stderr geschrieben wird. Leider kann ich den irgendwie nicht in meinem Script nutzen, oder auf stdout umleiten oder in eine Datei, um ihn dann auszulesen.
Hier ein paar Zeilen aus diesem Script:
FILENAME=`kdialog --getsavefilename ~/backup "*.img | Kartenimages"`
dd if=/dev/hdc of=$FILENAME &
PID= `ps -aeo "%p %c %a" | grep 'dd if /dev/hdc' | awk '{print $1}'`
STATUS=`kill -USR1 $PID 2<&1`
kdialog --msgbox $STATUS
So stelle ich es mir vor, aber es läuft nicht. Die PID bekomme ich so, aber nicht STATUS. Wie bekomme ich für den Anfang die Ausgabe des kill-Befehls in die STATUS-Variable? Später will ich das in einer Schleife abfragen und mit einer Progress-Bar anzeigen.
Danke schonmal, Jens
ich möchte ein kleines Script schreiben, bei dem ein User eine im Rechner 'steckende' CompactFlash-Karte per dd auf Festplatte sichern kann. Leider gibt es bei dd scheinbar keine Möglichkeit, direkt einen Status abzufragen. Da aber das Kopieren der Karte bei z.B. 1 GB Kapazität schon etwas dauert, möchte ich dem User schon ein Feedback geben.
In der Manpage zu dd steht, daß mit dem Signal USR1 ein Status auf stderr geschrieben wird. Leider kann ich den irgendwie nicht in meinem Script nutzen, oder auf stdout umleiten oder in eine Datei, um ihn dann auszulesen.
Hier ein paar Zeilen aus diesem Script:
FILENAME=`kdialog --getsavefilename ~/backup "*.img | Kartenimages"`
dd if=/dev/hdc of=$FILENAME &
PID= `ps -aeo "%p %c %a" | grep 'dd if /dev/hdc' | awk '{print $1}'`
STATUS=`kill -USR1 $PID 2<&1`
kdialog --msgbox $STATUS
So stelle ich es mir vor, aber es läuft nicht. Die PID bekomme ich so, aber nicht STATUS. Wie bekomme ich für den Anfang die Ausgabe des kill-Befehls in die STATUS-Variable? Später will ich das in einer Schleife abfragen und mit einer Progress-Bar anzeigen.
Danke schonmal, Jens