[Frage] Wo liegt in diesen Skript der Fehler?

tchleb

Neuer User
Mitglied seit
28 Okt 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe ein Problem ich habe ein Skript angepasst das den Online-Status überprüft und ggf einen Neustart durchführt, das ganze soll auf einer 6840 lte laufen (verliert öfters mal das internet).

Code:
#!/bin/bash
# Überprüfen ob Internet verfügbar und ggf Neustart

#Einstellungen

#IP zum anpingen
WATCH_IP="8.8.8.8"
#Pfad zum Logfile
LOGFILE="/dev/null"
#pause (in sekunden) zwischen den pings
PAUSE=5
#Anzahl der fehlgeschlagenen pings zum Neustart 
TESTS=70

#SCRIPT


MISSED=0

while true; do
  if ! ping -c 1 -w 1 $WATCH_IP > /dev/null; then
    ((MISSED++))
  else
    if [ $MISSED -ge $TESTS ]; then
     echo `date` '-' $WATCH_IP "ist wieder online." >> $LOGFILE;
    fi
    MISSED=0
  fi;
  if [ $MISSED -eq $TESTS ]; then
    echo `date` "-" $WATCH_IP "ist offline." >> $LOGFILE;
    #NEUSTART
    /sbin/reboot
  fi
  sleep $PAUSE;
done

das ganze habe ich erfolgreich unter Debian getestet. Wenn ich es auf der 6840 lte teste funktioniert das Hochzählen mit MISSED++ nicht. Ich habe es schon mit MISSED=MISSED+1 ohne erfolg getestet. Was mache ich da falsch?

gruss
tchleb
 
Die bash in Freetz ist schon etwas älter.

Versuche es mal damit, das geht vermutlich sogar mit der Busybox Shell.
Code:
MISSED=$((MISSED+1))
 
Bei mir geht ohne Freetz:

MISSED=$((MISSED+1))
 
Moins Ich weiss es! :roll:
Code:
: $((MISSED++))
Ja, eisbaerin, RalfFriedl, wart mal wieder schneller. :rolleyes: LOL: 3 Antworten gleichzeitig, und alle richtig! TOP
 
Zuletzt bearbeitet:
Danke euch allen, da lag der Fehler:eek:
 
Kostenlos!

Statistik des Forums

Themen
248,867
Beiträge
2,303,314
Mitglieder
378,526
Neuestes Mitglied
looser11