Historie von Projekte.OpenWRTpppReconnecter
Einfache Korrekturen ausblenden - Änderungen im Layout
12.06.2012 17:52 Uhr
von - PPP Reconnect Script für OpenWRT
Zeilen 1-136 hinzugefügt:
[@
#!/bin/sh
###############################################################################################
#
# PPP Reconnecter for OpenWRT Version 1.0 (c)2012 by Volker S. Latainski
#
###############################################################################################
#
# This program is free software; you can redistribute it and/or modify it under the terms
# of the GNU General Public License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program;
# if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110, USA
#
# See also http://www.gnu.org/licenses/gpl-3.0.txt
#
###############################################################################################
# public settings (feel free to change)
TIMEOUT=5 #timeout to exit
MAXTRY=5 #max. attempts to connect before die
# private settings (better don't touch them :P)
ATTEMPTS=0 #start with 0 is recommended
PIDFILE="/var/run/ppp-wan.pid" #pid file
# include files
. /etc/profile
# local functions
getIP ()
{
echo `/sbin/ifconfig $1 | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}'`
}
getPID ()
{
echo `awk 'NR==1 {print $1}' $1`
}
getINTERFACE ()
{
echo `awk 'NR==2 {print $1}' $1`
}
connect2PPP ()
{
until [ `/sbin/ifup wan >/dev/null 2>&1` ]; do
if [ ! -f "$PIDFILE" ]; then
echo -n "."
else
break
fi
if [ "$ATTEMPTS" -lt "$MAXTRY" ]; then
ATTEMPTS=$(($ATTEMPTS+1))
else
echo -e "Error: tried to reconnect $MAXTRY times,...so give it up."
closeME # exit
fi
done
}
closeME ()
{
echo -ne "\nExit/Logout in "
while [ "$TIMEOUT" -gt 0 ]; do
if [ "$TIMEOUT" -eq 1 ]; then
echo -ne "$TIMEOUT\n\n"
else
echo -ne "$TIMEOUT "
fi
sleep 1
TIMEOUT=$(($TIMEOUT-1))
done
exit 1
}
###############################################################################################
# header
echo -ne "\nPPP Reconnecter for OpenWRT\tVersion 1.0\t(c)2012 by xray\n"
echo -e "Released under the GNU/GPL\n"
# an existing connection was detected, let's run our stuff to reconnect
if [ -f "$PIDFILE" ]; then
# set interface
INTERFACE=`getINTERFACE $PIDFILE`
echo -e "IP now:\t\t\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
# close the existing connection
echo -ne "Close connection:\t"
until [ `/sbin/ifdown wan >/dev/null 2>&1` ]; do
if [ -f "$PIDFILE" ]; then
echo -n "."
else
break
fi
done
echo -e "done!"
# wait a second
sleep 1
# reconnect
echo -ne "New connection:\t\t"
connect2PPP
echo -e "established!"
# wait another second
sleep 1
# print current IP
echo -e "New IP:\t\t\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
# if there is no connection established, try to connect...
else
echo -ne "No connection available, try to connect..."
connect2PPP
echo -e "done!"
# wait a second
sleep 1
# print current IP
INTERFACE=`getINTERFACE $PIDFILE`
echo -e "New IP:\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
fi
# exit
closeME
@]
#!/bin/sh
###############################################################################################
#
# PPP Reconnecter for OpenWRT Version 1.0 (c)2012 by Volker S. Latainski
#
###############################################################################################
#
# This program is free software; you can redistribute it and/or modify it under the terms
# of the GNU General Public License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with this program;
# if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA 02110, USA
#
# See also http://www.gnu.org/licenses/gpl-3.0.txt
#
###############################################################################################
# public settings (feel free to change)
TIMEOUT=5 #timeout to exit
MAXTRY=5 #max. attempts to connect before die
# private settings (better don't touch them :P)
ATTEMPTS=0 #start with 0 is recommended
PIDFILE="/var/run/ppp-wan.pid" #pid file
# include files
. /etc/profile
# local functions
getIP ()
{
echo `/sbin/ifconfig $1 | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}'`
}
getPID ()
{
echo `awk 'NR==1 {print $1}' $1`
}
getINTERFACE ()
{
echo `awk 'NR==2 {print $1}' $1`
}
connect2PPP ()
{
until [ `/sbin/ifup wan >/dev/null 2>&1` ]; do
if [ ! -f "$PIDFILE" ]; then
echo -n "."
else
break
fi
if [ "$ATTEMPTS" -lt "$MAXTRY" ]; then
ATTEMPTS=$(($ATTEMPTS+1))
else
echo -e "Error: tried to reconnect $MAXTRY times,...so give it up."
closeME # exit
fi
done
}
closeME ()
{
echo -ne "\nExit/Logout in "
while [ "$TIMEOUT" -gt 0 ]; do
if [ "$TIMEOUT" -eq 1 ]; then
echo -ne "$TIMEOUT\n\n"
else
echo -ne "$TIMEOUT "
fi
sleep 1
TIMEOUT=$(($TIMEOUT-1))
done
exit 1
}
###############################################################################################
# header
echo -ne "\nPPP Reconnecter for OpenWRT\tVersion 1.0\t(c)2012 by xray\n"
echo -e "Released under the GNU/GPL\n"
# an existing connection was detected, let's run our stuff to reconnect
if [ -f "$PIDFILE" ]; then
# set interface
INTERFACE=`getINTERFACE $PIDFILE`
echo -e "IP now:\t\t\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
# close the existing connection
echo -ne "Close connection:\t"
until [ `/sbin/ifdown wan >/dev/null 2>&1` ]; do
if [ -f "$PIDFILE" ]; then
echo -n "."
else
break
fi
done
echo -e "done!"
# wait a second
sleep 1
# reconnect
echo -ne "New connection:\t\t"
connect2PPP
echo -e "established!"
# wait another second
sleep 1
# print current IP
echo -e "New IP:\t\t\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
# if there is no connection established, try to connect...
else
echo -ne "No connection available, try to connect..."
connect2PPP
echo -e "done!"
# wait a second
sleep 1
# print current IP
INTERFACE=`getINTERFACE $PIDFILE`
echo -e "New IP:\t`getIP $INTERFACE` [PID `getPID $PIDFILE`]"
fi
# exit
closeME
@]