Shellscript für DSL 24h Trennung

Chefkoch

Active Member
Hallo,

ich weiß garnicht ob ich überhaupt auf dem richtigen Weg bin, aber ich habe auch das Problem, dass die Telekom nach 24 Stunden trennt und mein Gateway das nicht merkt. Das System ist FBSD6.

Aus diesem Thread 24h disconnect Hansenet osä weiß ich, das ich nicht allein bin.

Da ich auch nicht weiß, wie ich ppp zum trennen der Verbindung bewegen kann, mache ich dies mittlerweile mit kill und ppp -ddial, vorher hab ichs der Einfachheit halber mit reboot gemacht.

Nun dachte ich mir, hey es gibt doch für solche Aufgaben die regelmäßig vorkommen, die Shellscripte.
Gut, aber wo oder wie oder noch einfacher hat jemand solch ein Script für mich oder kann mir erklären wie ich das mache?

Mit folgendem "Script"
Code:
top | grep ppp > /root/ppp.pid
head -c 5 ppp.pid > /root/ppp.jpid

habe ich zwar die PID aber dann? Und außerdem gibt es bestimmt eine GetProcessID() oder so ähnlich ;) Funktion oder?
Wenn ja wie heißt die und woher soll ich das wissen, also in welcher manpage kann ich etwas darüber lesen?

Wer bis hierhin gelesen hat, schonmal Schönen Dank und frohes Fest, falls er oder sie mir nicht helfen kann...

Gruß
Chefkoch
 
Verwende doch einfach killall(1), da brauchst du die PID erst gar nicht zu ermitteln, sondern kannst mit dem Programmnamen arbeiten.
 
Oh den Befehl gibt es auch?

Aber *stolz die Brust anschwell* *kurz vorm Platzen vor Stolz* das hier funktioniert:

Code:
top | grep ppp > /root/ppp.pid
head -c 5 ppp.pid > /root/ppp.jpid
echo "kill" > ppp.opid
awk '{print $1}' ppp.jpid >> /root/ppp.opid
awk '{printf $1 " " $2}' ppp.opid > ppp.re
echo "" >> ppp.re 
source ppp.re
ppp -ddial
exit

Vermutlich von hinten durch die Brust ins Auge wie man so schön sagt, aber es funktioniert *sing tanz* :D :D

Danke
Chefkoch
 
Puh, das ist aber umstaendlich.
Wie waers mit:
Code:
#!/bin/sh

while [ true ] # Endlosschleife
do
   ppp -ddial <dein provider> 
   sleep  86400 # 24h schlafen
   killall ppp
done
 
Ich hab das bei mir mit pppctl geregelt:

in ppp.conf
Code:
 set server +3000 PASSWORD # statt +3000 auch gerne nen Socket (/var/run/ppp.sock)

dann nen cronjob der so aussieht:

Code:
#!/bin/sh
WAIT=3
PORT=3000
PASS="PASSWORD"

/usr/sbin/pppctl -p $PASS $PORT down
sleep $WAIT
/usr/sbin/pppctl -p $PASS $PORT dial

Klappt seit fbsd 4.Irgendwas mit t-online dsl bis fbsd 6 und dsl business problemlos.
 
man kann noch die freebsd eigenen skripte zum starten von ppp zu nutzen:
#!/bin/sh
/usr/bin/killall ppp
/bin/sleep 5
/etc/rc.d/ppp-user start

und das dann in den cron stopfen. ich lass es kontrolliert morgens um 6 geschehen.
 
Zurück
Oben