Siduction Forum

Siduction Forum => Scripting & Kernelhacking => Topic started by: AnJo on 2011/03/08, 15:13:39

Title: pipestatus abfragen ?
Post by: AnJo on 2011/03/08, 15:13:39
Hallo zusammen,

für das Zurückschreiben eines mit dd erstellten images benutze ich die folgenden Anweisungen:

cat /mnt/backups/image.gz.* / gzip -dc / dd of=/dev/sda1 bs0512 &
ddpid=$!
while ["`ps -a | grep $ddpid`" ]; do kill -USR1 $ddpid; sleep 2; done


Die while-Schleife dient dazu mir den Fortschritt der Rücksicherung anzuzeigen.

Ich möchte jetzt noch den Status der pipe abfragen.
Das bekomme ich irgendwie nicht hin.
Habe schone PIPESTATUS und eine eval-Konstrukt ausprobiert, aber egal wie ich es einbinde die while-Schleife wird nicht bzw. erst nachdem die vollständige Rücksicherug ergfolgt ist
bearbeitet.

Jemand eine Idee ?

Danke

Gruß
AnJo
Title: pipestatus abfragen ?
Post by: hubi on 2011/03/08, 15:29:59
Pipes werden nicht durch Schrägstriche gesetzt.

hubi
Title: pipestatus abfragen ?
Post by: bluelupo on 2011/03/08, 16:52:52
Hi AnJo,
warum nimmst du nicht pipemeter (http://spamaps.org/pipemeter.php) dann hast du auf bequeme Art eine Fortschrittsanzeige  ;-)
Title: pipestatus abfragen ?
Post by: AnJo on 2011/03/08, 18:23:27
QuotePipes werden nicht durch Schrägstriche gesetzt.

war natürlich ein Schreibfehler.
Ist im script aber richtig mit "|".

Pipemeter sagt mir nun gar nichts, muß da erst einmal googeln.

Danke

Gruß
AnJo
Title: pipestatus abfragen ?
Post by: bluelupo on 2011/03/08, 18:32:55
@AnJo: pipemeter kannst du mit apt installieren.
Title: pipestatus abfragen ?
Post by: AnJo on 2011/03/09, 08:23:02
Quotepipemeter kannst du mit apt installieren.

Dann  ist das wohl nichts für mich.

Ich möchte an einem fertigen Script http://www.4matc.org/für fs-archiver einige Änderungen vornehmen (u.a. split) und dann in die sysresccd die ich schon seit längerem nutze einbinden.

Daher enstand Anfangs beschriebenes Problem, weshalb ich noch einmal darauf zurückkommen möchte.

Das &-zeichen hinter dem "bs=512" sorgt ja wohl dafür, dass parallel zur Pipe auch die while-Schleife abgearbeitet wird.
Funktioniert soweit auch ohne Probleme.

Sobald ich versuche den status der Pipe abzufragen indem ich:
1. status=${PIPESTATUS