bash warten bis host down

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

bash warten bis host down

Beitrag von mclien » 18.12.2012 10:51:58

Hi Leute,

ich baue hier gerade an einem script zum sauberen shutdown aller server. Da die z.T voneinander abhängen bin ich gerade an dem codeschnipsel, der warten soll, bis der host nicht mehr pingbar ist (denn dann kann ein anderer server ja eh nicht mehr darauf zugreifen). Bisher sieht das so aus:

Code: Alles auswählen

#!/bin/bash

A=0
IP="whatever-i-ping"

while [ $A -eq 0 ]
  do
    echo "host ist on"
    sleep 0.5
    ping -c 1  $IP >/dev/null 2>&1
    A=$?
  done
echo "weiter gehts"
die beiden echo befehle sind nur für den testlauf, die kommen hinterher weg.
Die Sache mit $A mache ich hauptsächlich um sicher zu stellen, daß beim Start der while Schleife auch wirklich der Wert 0 existiert und $? m.W. nicht direkt gesetzt werden kann.
Dafür den ping Aufruf nochmal vor die Schleife zu setzen schien mir etwas unelegant.
Irgendwelche Verbesserungen und Anmerkungen für einen Scriptpfuscher wie mich?

Benutzeravatar
Phineas
Beiträge: 354
Registriert: 20.06.2012 20:26:19

Re: bash warten bis host down

Beitrag von Phineas » 18.12.2012 11:10:36

While wertet einen Exit-Code direkt aus, Du brauchst also kein $A:

Code: Alles auswählen

while ping -c 1 ...

mclien
Beiträge: 2468
Registriert: 06.12.2005 10:38:46
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Baustelle

Re: bash warten bis host down

Beitrag von mclien » 18.12.2012 12:12:01

Ah, cool. Danke.

Antworten