53 lines
1.2 KiB
Bash
Executable File
53 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
|
|
device=$1
|
|
device=${device:="ppp0"}
|
|
|
|
provider=$2
|
|
provider=${provider:="dsl-provider"}
|
|
|
|
reconnect() {
|
|
## - shutdown dsl line
|
|
## -
|
|
ifdown $provider >/dev/null 2> /dev/null
|
|
sleep 2
|
|
|
|
## - If shutdown wasn't successful, kill the concerning pid
|
|
## -
|
|
PID=`ps ax | grep pppd | grep -v grep | grep $provider | awk '{print$1}'`
|
|
while [ -n "$PID" ]; do
|
|
kill -9 $PID
|
|
sleep 2
|
|
PID=`ps ax | grep pppd | grep -v grep | grep $provider | awk '{print$1}'`
|
|
done
|
|
|
|
## - Bring up dsl line
|
|
## -
|
|
_date=`date +"%d.%m.%Y %H:%M:%S"`
|
|
ifup $provider >/dev/null 2> /dev/null
|
|
sleep 2
|
|
|
|
|
|
#echo -n "`hostname --long` reconnected at `date +\"%d.%m.%Y %H:%M:%S\"`"
|
|
|
|
declare -i _number=0
|
|
ptp_addr="$(ip addr show $device 2>/dev/null | grep -E "^\s*inet" | awk '{print$2}')"
|
|
while [ -z "$ptp_addr" ]; do
|
|
[[ $_number -eq 90 ]] && break
|
|
sleep 1
|
|
ptp_addr="$(ip addr show $device 2>/dev/null | grep -E "^\s*inet" | awk '{print$2}')"
|
|
let _number++
|
|
done
|
|
|
|
if [ "X$ptp_addr" = "X" ] ; then
|
|
echo ""
|
|
echo "[ ERROR ]: reconnection host `hostname --long` failed at `date +\"%d.%m.%Y %H:%M:%S\"`"
|
|
fi
|
|
}
|
|
|
|
reconnect
|
|
|
|
exit 0;
|