• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[GELÖST+ Script] Auto DSL-wahl-Script läuft nicht richtig..

Hallo zusammen,

wahrscheinlich regt sich jetzt der ein oder andere auf, dass es schon wieder dieses dumme Thema ist...
Aber ich habe mich schon dumm und dämlich gesucht nach einer guten Lösung und nem guten Script. Nichts wirkliches gefunden.

Ausser dem hier:

#!/bin/bash
if (ifconfig dsl0 up &> /dev/null) then
{
echo "Schnittstelle vorhanden"
exit 0
}
else
{
until (ifconfig dsl0 down &> /dev/null)
do
echo -e "Schnitstelle nicht vorhanden.\nSchnittstelle wird erstellt"
/sbin/ifup dsl0
sleep 10
done
echo "Schnittstelle wurde erstellt"
}
fi


Es funktioniert in der Konsole sehr gut. Ist dsl0 down, wird eine verbindung aufgebaut, keiner Meckert. Es terminiert auch (also läuft nur einmal, afaik).

Habe ich das Ding allerdings als cronjob als root (crontab -e; */5 * * * * /root/dialin.sh), dann meckern die log-files...
Gestern ist das /var/log/messages auf über 12 MB angewachsen wegen dem script.
Dem log kann ich entnehmen, dass die Schleife endlos läuft. (wieso?)
Gleiches kann ich auch der Prozess-Liste entnehmen, dass dialin.sh nicht terminiert.

Ich bin ratlos, da nicht so bewandert mit programmierung.

Vielen Dank schonmal,

SirSmackalot


Ich habe das Problem mit einem anderen Script gelöst. Das funktioniert wunderbar:
Für alle die es sich anschauen wollen:
<Script>
#!/bin/sh

INTERFACE=dsl0
STATUS_PPP_IF=`/sbin/ifconfig | grep -v grep | grep ${INTERFACE}`

echo
echo "--------------------------------------------------------------"
date
echo

if [ "${STATUS_PPP_IF}" == "" ]; then
echo -n "Interface ${INTERFACE} ist down - starte neu..."
/sbin/ifdown ${INTERFACE}
sleep 1
/sbin/ifup ${INTERFACE}
sleep 1
echo "done."
else
echo "Interface ${INTERFACE} ist up - mache nichts!"
fi
echo
date
echo
</Script>

in (root) crontab -e steht: */2 * * * * /root/autodial.sh

Gruss,

SirSmackalot
 
Oben