Mein Einwahl-Script habe ich schon unzählige Mal verändert, leider immer nur mit mäßigem Erfolg.
Das Problem ist oft, dass die Verbindung zu Inode noch steht, aber keine Daten mehr durchkommen.
Dadurch bleiben die Pings dann aufrecht (100% success), aber sonst geht nichts mehr
Eine Zeitlang hatte ich auch das Problem, dass die Pings gar nicht mehr gingen "Network unreachable". Das habe ich auch versucht, mit dem Script abzufragen.
- Code: Alles auswählen
#!/bin/sh
##################################################
## ##
## Internet Reconnect-Script ##
## ##
##################################################
## erstellt: 07.04.2005 - (c) justsmile ##
EINWAHLNEU="0"
ZIEL1="195.58.160.103" # Zielserver 1 fĂĽr Ping: ping.inode.at
ZIEL2="195.58.160.2" # Zielserver 2 fĂĽr Ping: ns1.inode.at
INTERVALL="600" # Zeit in Sekunden bis zur erneuten ĂśberprĂĽfung
LOGFILE="/home/justsmile/public_html/logfiles/checkinternet.log"
TMPFOLDER="/home/justsmile/scripts/tmp/"
TMP1="$TMPFOLDER$ZIEL1.tmp"
TMP2="$TMPFOLDER$ZIEL2.tmp"
while true
do
### Verbindung prĂĽfen
/bin/ping -c 3 -w 10 -i 1 $ZIEL1 > $TMP1 2>&1
/bin/ping -c 3 -w 10 -i 1 $ZIEL2 > $TMP2 2>&1
if (cat $TMP1 | grep 'unreachable' > /dev/null) && (cat $TMP2 | grep 'unreachable' > /dev/null)
then
# ** Netzwerke nicht erreichbar
EINWAHLNEU="1"
else
if (cat $TMP1 | grep '100% loss' > /dev/null) && (cat $TMP2 | grep '100% loss' > /dev/null)
then
# ** Ziele nicht erreichbar
EINWAHLNEU="1"
else
# ** Verbindung steht, alles bestens
sleep 1
fi
fi
### Neueinwahl notwendig ?
if [ "$EINWAHLNEU" = "1" ]
then
# echo "Neueinwahl"
echo "`date +%d.%m.%Y\ %H:%M`: Wiedereinwahl..." >> $LOGFILE
killall pptp
sleep 3
killall pppd
sleep 3
/opt/inode-dsl/bin/redial Inode
sleep 3
grep "Connect time" /var/log/messages | tail -1 >> $LOGFILE
fi
### Warten
sleep $INTERVALL
done
Bei mir lautet der Befehl fĂĽr's Redial
/opt/inode-dsl/bin/redial Inode
Alle Linux-Hardcore-User mögen mir mein dirty-scripting verzeihen
Vorschläge und Ergänzungen sind willkommen.