On Saturday 15 May 2004 21:40, Noam Meltzer wrote:
> Hetz Ben Hamo wrote:
> > Hi,
> >
> > I have a situation which is well known to people - your machine is
> > connected (PPTP) to the net, but sometimes there's disconnection
> I have such scripts, which I managed to write during the time (and based
> on other scripts which I found on the internet. - sorry, but i don't
FWIW, I also have a script to do the job. It's not as **smart** as what Noam
suggested, but it works well for me (running as a cron job every 2 minutes).
The basic idea is to check if the connection is up (not depending on ifconfig
which may report a ppp connection even when pptp has died). The only
**special** thing I did was a sort of primitive **limited time locking**. My
problem was that sometimes the reconnection takes more than 2 minutes and
this would result in more than 1 copy of the script running. On the other
hand, a **normal** lock file wouldn't solve the problem if the computer
itself locked up. Because when it restarted, the old, out-of-date lock file
would still be there. So I test the lock file to see if it should be deleted.
All the rest is self explanatory.
I'm including 3 scripts (and as with Noam's script, you also need a firewall
script). I put in a phoney username in the last script (my paranoia).
>>>>>>>>>>>> file 1 - myADSLtest <<<<<<<<<<<<<<<
#!/bin/bash
## myADSLtest - reset ADSL if it stops responding - run every 2 minutes
MYDATE=`(set \`date\`; echo $1 $2 $3 $4 $5 $6)`
## is the script already running?
if test -e /tmp/tst-lock-myADSLtest; then ## lock exists so already running
echo "myADSLtest is already running so let's quit " $MYDATE
>> /var/log/mylogs/adsl-down.log
cat /tmp/tst-lock-myADSLtest
## next line adds an "X" to the lock file - for use in testing old lock files
echo "X" >> /tmp/tst-lock-myADSLtest
## next lines delete lock file older than 20 minutes
grep -c "X" /tmp/tst-lock-myADSLtest | grep 9
> /tmp/tst-for-old-lock-myADSLtest
if test -s /tmp/tst-for-old-lock-myADSLtest; then
## not a zero sized file so 9 Xs (i.e. 20 minutes) found
echo "we should remove the old lock file"
rm -f /tmp/tst-lock-myADSLtest
else
echo "the file isn't old enough to remove"
fi
exit
fi
## create the lock file
touch /tmp/tst-lock-myADSLtest
## fping instead of ping - allows testing more than one address
fping www.barak-online.net www.google.co.il www.google.com | grep "is alive"
> /tmp/tst-if-alive
if test -s /tmp/tst-if-alive; then ## not a zero file - found "is alive"
echo "ping is OK - we're online"
else
echo "<<< not OK >>>" >> /var/log/mylogs/adsl-connect.log
echo "calling myadslreset " >> /var/log/mylogs/adsl-connect.log
echo "ADSL was down at: " $MYDATE >> /var/log/mylogs/adsl-down.log
/data1/myscripts/myadslreset >> /var/log/mylogs/adsl-connect.log
MYDATE=`(set \`date\`; echo $1 $2 $3 $4 $5 $6)`
echo "ADSL back up at ---- " $MYDATE >> /var/log/mylogs/adsl-connect.log
echo "ADSL back up at ---- " $MYDATE >> /var/log/mylogs/adsl-down.log
fi
## delete the lock file
rm -f /tmp/tst-lock-myADSLtest
>>>>>>>>>>>> file 2 - myadslreset <<<<<<<<<<<<<<<
#!/bin/bash
## reset ADSL if it stops responding
killall pptp
killall pppd
echo "clearing unix domain - ADSL - suggested by mulix 20/2/01"
rm -f /var/run/pptp/10.0.0.138
## sleep a bit to make sure the previous steps finished
sleep 10
/data1/myscripts/myintermail
/data1/myscripts/myFWup
>>>>>>>>>>>> file 3 - myintermail <<<<<<<<<<<<<<<
#!/bin/bash
## start ADSL on InterMail
ifconfig eth0 10.200.1.1 netmask 255.0.0.0 mtu 1500
## next line changed for InterMail 28-3-04 1-800-206-207
## - also note changes to pap-secrets and chap-secrets
pptp 10.0.0.138 debug user [EMAIL PROTECTED] remotename "10.0.0.138
RELAY_PPP1" defaultroute netmask 255.0.0.0 mtu 1452 noauth
--
Shlomo Solomon
http://come.to/shlomo.solomon
Sent by KMail 1.6.1 (KDE 3.2) on LINUX Mandrake 10.0
=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]