Hallo Christian, hier das Script aus der Suse-Supportdatenbank: #! /bin/bash # # Copyright (c) 1999 SuSE GmbH Nuernberg, Germany. All rights reserved. # # # parameters # start section section section # restart section section section # start or restart the daemon with parameters found in /etc/wvdial.conf # section is the name of a section in the /etc/wvdial.conf file # (see man wvdial) # stop # stop the pppd # hangup # hang up the telephone line # additional Parameters in /etc/wvdial.conf could be # Idle: sets the idle-time for waiting before hang up (deafult 180s) # Remote IP: remote IP-address (default 192.168.99.99) # Local IP: local IP-address (default 192.168.99.1) # Defaultroute: no: pppd will not set the default route to the remote ip # (default yes) function log() { # logs the messages to system log HEAD=$0[$$] echo $MESSAGE logger -t $HEAD "$MESSAGE" } function setpppdparam() { # time to sleep for pppd to come up WAITFORPPPD=2 CONFFILE="/etc/wvdial.conf" TMPFILE="/tmp/wvdial.dod.tmp" # extract subsection cat /etc/wvdial.conf | sed -n "/Dialer.*$SECTION/{:x;p;n;/Dialer/q;bx}" > $TMPFILE VALUE=`cat $TMPFILE | grep "Modem" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Modem=$VALUE; fi VALUE=`cat $TMPFILE | grep "Baud" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Baud=$VALUE; fi VALUE=`cat $TMPFILE | grep "Username" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Username=$VALUE; fi VALUE=`cat $TMPFILE | grep "Remote IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Remote_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Local IP" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Local_IP=$VALUE; fi VALUE=`cat $TMPFILE | grep "Idle" | cut -f2 -d"="` if [ ! -z "$VALUE" ]; then Idle=$VALUE; fi VALUE=`cat $TMPFILE | grep "Defaultroute" | cut -f2 -d"="` if [ X$VALUE = XNo -o X$VALUE = XNO -o X$VALUE = Xno ]; \ then DEFAULTROUTE="nodefaultroute"; fi rm -f $TMPFILE } function killpppd() { if [ -e $PIDFILE ]; then MESSAGE="killing pppd process " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -15 $PID 2>/dev/null #kill -9 $PID 2>/dev/null rm $PIDFILE fi } function startpppd() { # set defaults, no defaults for # Username, Modem, Baud Local_IP="192.168.99.1" Remote_IP="192.168.99.99" Idle=360 DEFAULTROUTE="defaultroute" # get params from section "Dialer Default" SECTION=Defaults setpppdparam # parse given section ([Dailer xxx]) parameters while [ ! -z $1 ]; do SECTION=$1 setpppdparam shift done # start pppd in demand mode PPPPDPARAMS="$Local_IP:$Remote_IP $Modem $Baud modem crtscts $DEFAULTROUTE -detach user $Username ipcp-accept-local ipcp-accept-remote call wvdial demand idle $Idle" MESSAGE="starting pppd $PPPPDPARAMS connect \"/usr/bin/wvdial --chat $WVPARAMS\ "... " pppd $PPPPDPARAMS connect "/usr/bin/wvdial --chat $WVPARAMS" &>/dev/null & PPPDPID=$! echo $PPPDPID > $PIDFILE MESSAGE=$MESSAGE"PID=$PPPDPID" log # setting dynamic - parameter for ppp - device # waiting pppd to come up sleep $WAITFORPPPD ls /var/run/ppp?.pid | while read PIDFILE ; do if [ X$PPPDPID = X`cat $PIDFILE` ]; then DEVICE=`echo $PIDFILE | cut -c 10-13` MESSAGE="setting $DEVICE dynamic " ifconfig $DEVICE dynamic ifconfig $DEVICE | grep "DYNAMIC" -q RES=$? if [ $RES -gt 0 ]; then MESSAGE=$MESSAGE"failed" exit 1 fi MESSAGE=$MESSAGE"done" log fi done exit 0 } # main LINKNAME=dod PIDFILE=/var/run/pppd.$LINKNAME.pid ACTION=$1 shift WVPARAMS=$@ case "$ACTION" in start) # make sure to start even when uncleanly stopped killpppd netstat --inet -p startpppd $@ netstat --inet -p ;; stop) # handle stop killpppd exit 0 ;; reload|restart) killpppd startpppd $@ ;; hangup) if [ -e $PIDFILE ]; then MESSAGE="hangup pppd connection " PID=`cat $PIDFILE` MESSAGE=$MESSAGE"PID=$PID" log kill -SIGHUP $PID #2>/dev/null exit 0 fi MESSAGE="no pppd connection" log exit 1 ;; # status) # ;; *) echo "Usage: /sbin/init.d/wvdial.dod {start [section [section [..]]]|hangup|stop|restart}" exit 1 ;; esac # Ende des Scripts Bin mal gespannt. Was bedeutet der Befehl "log" im script? MFG. Dietmar
participants (1)
-
Dietmar.Segbert@t-online.de