Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] pipestatus abfragen ?  (Read 5230 times)

AnJo

  • Guest
[DE] pipestatus abfragen ?
« on: 2011/03/08, 15:13:39 »
Hallo zusammen,

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

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

Offline hubi

  • User
  • Posts: 142
pipestatus abfragen ?
« Reply #1 on: 2011/03/08, 15:29:59 »
Pipes werden nicht durch Schrägstriche gesetzt.

hubi

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
pipestatus abfragen ?
« Reply #2 on: 2011/03/08, 16:52:52 »
Hi AnJo,
warum nimmst du nicht pipemeter dann hast du auf bequeme Art eine Fortschrittsanzeige  ;-)

AnJo

  • Guest
pipestatus abfragen ?
« Reply #3 on: 2011/03/08, 18:23:27 »
Quote
Pipes 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

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
pipestatus abfragen ?
« Reply #4 on: 2011/03/08, 18:32:55 »
@AnJo: pipemeter kannst du mit apt installieren.

AnJo

  • Guest
pipestatus abfragen ?
« Reply #5 on: 2011/03/09, 08:23:02 »
Quote
pipemeter 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