Frage zur while Schleife in debug.cfg

kdd

Neuer User
Mitglied seit
9 Aug 2005
Beiträge
67
Punkte für Reaktionen
0
Punkte
6
Moin,
oft wird für die debug.cfg eine while Schleife verwendet, um z.B. die Erreichbarkeit eines Servers sicherzustellen.
Code:
while !(ping -c 1 www.tecchannel.de); do
sleep 10
done
Wie sieht das denn aus, wenn der Server dann tatsächlich mal down ist.
Sehe ich das richtig, dass das Script, in diesem Fall die debug.cfg dort hängen bleibt, und ich "ewig" warte, bis die restlichen Anweisungen nach der Schleife ausgeführt werden?
In diesem Fall würde z.B. auch der LCR nicht geladen, der mir die Wahltabelle für die CBC Nummern via isdn bereitstellt. Damit hätte ich dann recht hohe Kosten und merke das erst bei der nächsten Rechnung. :-O

Gleich zu Beginn in der debug.cfg teste ich nämlich auf einen internen Server, um Dateien per wget nachzuladen. Wie komme ich aus der Schleife heraus, wenn der Server down ist?
 

buehmann

Aktives Mitglied
Mitglied seit
11 Jun 2005
Beiträge
1,810
Punkte für Reaktionen
0
Punkte
0
Hi,

ja, die Schleife läuft solange, bis der Server erreicht wurde; wenn er down ist, also beliebig lange.
kdd schrieb:
Wie komme ich aus der Schleife heraus, wenn der Server down ist?
Du kannst z.B. eine maximale Anzahl von Wartezyklen durchführen und danach aufgeben:
Code:
tries=5
while [ $tries -gt 0 ] && ! ping -c 1 rechner; do
  let tries--
  sleep 10
done
oder so
Code:
tries=0
while ! ping -c 1 rechner; do
  let tries++
  [ $tries -ge 5 ] && break
  sleep 10
done
Gruß,
Andreas
 

kdd

Neuer User
Mitglied seit
9 Aug 2005
Beiträge
67
Punkte für Reaktionen
0
Punkte
6
Moin,
wow, das klappt ja schnell hier; vielen Dank.
Meine 20 Jahre alten UNIX-Kenntnisse reichen halt nicht und die Beschreibungen sind mitunter auch recht holprig. Das Beispiel hilt mir aber gut weiter.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,175
Beiträge
2,030,965
Mitglieder
351,580
Neuestes Mitglied
axelanders