.titleBar { margin-bottom: 5px!important; }

Frage zur while Schleife in debug.cfg

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von kdd, 29 Nov. 2006.

  1. kdd

    kdd Neuer User

    Registriert seit:
    9 Aug. 2005
    Beiträge:
    67
    Zustimmungen:
    0
    Punkte für Erfolge:
    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?
     
  2. buehmann

    buehmann Aktives Mitglied

    Registriert seit:
    11 Juni 2005
    Beiträge:
    1,810
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    ja, die Schleife läuft solange, bis der Server erreicht wurde; wenn er down ist, also beliebig lange.
    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
     
  3. kdd

    kdd Neuer User

    Registriert seit:
    9 Aug. 2005
    Beiträge:
    67
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.