Scripts für Internet Anbindung

Post Reply
Message
Author
zeoch
Posts: 89
Joined: 28. Sep 2001 7:48
Location: Berlin
Contact:

Scripts für Internet Anbindung

#1 Post by zeoch »

Hallo zusammen,
hab nen linux server(rh7.1) und dsl flate rate. ich habe ziemlich oft das prob, das wenn die 24h vorbei sind und telekom trennt, kann ich mich für knapp 1-2h nicht mehr einwählen. das ist dann so also ob die telekom wieder mal einen ausfall hat. er bekommt kein conn zu dem dsl modem(telekomseitig).
Hab isch mir also gedacht, das umgehste am besten mit paar scripts, die kontrollieren ob a) ich im inet bin und ggf sich neu einwählt; b) nach 23,5h automatisch trennt und sich wiedereinwählt(wegen oben beschrieben prob) und c) guckt ob meine dynamische ip auch mit der aktuellen übereinstimmt und ggf die dyn ip aktualisiert.
da ich kein scripter bin, wollt ich mal fragen ob meine scripts so im allgemeinen ok sind, oder ob man das was verbessern kann.

Es sieht so aus, das es 5 scripts sind:
inet_conn_check - prüft per cron alle 10mins ob inet an ist und dyn ip stimmt
inet_redial - einwahl script, per cron um 05:55 und 06:00
inet_dns-check - prüft dyn ip
inet_myip - aktualisiert die dyn ip
inet_ping - verzögerter dauer ping, um nicht wegen inaktivität getrennt zu werden; wird bald durch fetchmail aufruf per cro ersetzt

inet_conn_check:
#! /bin/sh
# script und pfad des internts neueinwahl scripts
# ( muss ein ausführbares verzeichnis wie /bin/ sein )
restart="/bin/inet_redial"
# ip addressen, die zum überprüfen der internetverbindung sind. hier die dns server der telekom.
ping1="194.25.2.129"
ping2="217.5.100.1"
ping -c 2 $ping1 1>/dev/null 2>/dev/null
if [ $? = 0 ]
then
inet_dns-check 1>/dev/null 2>/dev/null
else
{
ping -c 2 $ping2 1>/dev/null 2>/dev/null
if [ $? = 0 ]
then
inet_dns-check 1>/dev/null 2>/dev/nulll
else
$restart
fi
}
fi


inet_dns-check:
#!/bin/sh
inet=`ping -c 1 zeoch.myip.org 2/dev/null|grep PING|cut -d '(' -f 2|cut -d \ -f 1|sed -e s/\)//`
local=`ping -c 1 zeoch.myip.org 2/dev/null|grep PING|cut -d ' ' -f 5`
if [ $inet = $local ]
then
exit 0
else
{
/bin/firewall
inet_myip 1/dev/null 2/dev/null
}
fi


inet_ping:
#/bin/sh
schleife="1"
if [ $schleife = 1 ]
then
{
ping -c 1 www.yahoo.de 1>/dev/null 2>/dev/null
sleep 45
}
else
exit 1
fi


inet_redial:
#!/bin/sh
cd /usr/sbin
./adsl-stop 1>/dev/null 2>/dev/null
sleep 2

killall -9 inet_ping 1>/dev/null 2>/dev/null
sleep 2

./adsl-start 1>/dev/null 2>/dev/null
sleep 10

firewall 1>/dev/null 2>/dev/null
sleep 3

inet_ping & 1>/dev/null 2>/dev/null

inet_myip


inet_myip post ich mal nicht, da es ein fertiges shell script ist, welches ich von der dyn site gezogen hab.
was mich am meisten im inet_redial stört, ist das ohne dem cd ich kein adsl-start/stop ausführen kann. auch ein aufruf mit ./usr/sbin/adsl-start/stop funktioniert nicht.

Und, was geht da besser, ausser vielleicht das man die die alle in ein file machen könnt?
MfG
Zeoch
Wer Rechtschreibefehler findet darf sie behalten.

trinity
Posts: 821
Joined: 12. Oct 2001 10:04

Re: Scripts für Internet Anbindung

#2 Post by trinity »

da du anscheinend rp-pppoe verwendest, kannst du dir die ping-schleife sparen. da hast in dem config-script vermutlich eh angegeben, dass du eine manuelle anweahl haben willst (deswegen ja auch adsl-start), dann legt er auch nicht automatisch auf. wobei ich mir nicht sicher bin, ob man das nicht doch einstellen kann.
das bedeutet, du trennst deine verbindung alle 23,5 Stunden und reconnectest dich dann wieder.

dein problem mit dem script:
./usr/sbin/adsl-start/stop

lautet:
/usr/sbin/adsl-stop

ohne führenden Punkt. und das skript heisst adsl-stop. dann müsste es auch ohne cd funktionieren

zeoch
Posts: 89
Joined: 28. Sep 2001 7:48
Location: Berlin
Contact:

Re: Scripts für Internet Anbindung

#3 Post by zeoch »

Lutz postet wieder von arbeit :)

ja, ich nutze die manuelle einwahl. ich hatte am anfang das ping auch weggelassen, aber festgestellt, das da doch jemand auflegt.
die idle time auf 84600s (23,5h) gestellt zeigt aber auch keinen erfolg. wie gesagt bin nicht der experte und weiss nicht ob das noch ein anders script mit "reinspielt", hab aber den verdacht, das die telekom auch nach einer gewissen idle zeit von selbst diconnectet.
sobald ich das ping, welches ja durch das fetchmail bald ersetzt wird, reingenommen hatte funktionierte es.

das mit dem /usr/sbin/adsl-stop bzw start hatte ich eigentlich auch ausprobiert. werd ich aber nochmal testen, allerdings erst wieder zu hause, da ich sonst auf arbeit nen rüffel kriege ;)

ansonsten iss des so ok? dachte mir vielleicht gibts ne besser methode als das pingen um festzustellen ob man im inet ist.
das ping erschien mir der einfachste weg dazu.
MfG
Zeoch
Wer Rechtschreibefehler findet darf sie behalten.

trinity
Posts: 821
Joined: 12. Oct 2001 10:04

Re: Scripts für Internet Anbindung

#4 Post by trinity »

du könntest in deinem scipt einfach ppp0 überprüfen, wie wär das?

zeoch
Posts: 89
Joined: 28. Sep 2001 7:48
Location: Berlin
Contact:

Re: Scripts für Internet Anbindung

#5 Post by zeoch »

hm, klar. das sollte auch wesentlich schneller gehen als ein ping.
das sollte ein ifconfig|grep ppp0 und die auswertung des $? schon reichen.
Dangge <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
MfG
Zeoch
Wer Rechtschreibefehler findet darf sie behalten.

Post Reply