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
Pipes werden nicht durch Schrägstriche gesetzt.
hubi
Hi AnJo,
warum nimmst du nicht pipemeter (http://spamaps.org/pipemeter.php) dann hast du auf bequeme Art eine Fortschrittsanzeige ;-)
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
@AnJo: pipemeter kannst du mit apt installieren.
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
- } direkt nach der Pipe und vor der
while-schleife
oder
2. die pipe durch die eval-Funktion realisiere
wird die while-Schleife nicht mehr bzw. erst nach der Pipe bearbeitet.
Stausabfrage funktioniert in beiden Fällen einwandfrei, nur wie bringe ich die while-schleife parallel zu Pipe zum laufen ?
Gruß
Anjo