4 # Copyright (C) 2015 shibby
8 IFACE
=`nvram get "$PREFIX"_ifname`
9 PROTO
=`nvram get "$PREFIX"_proto`
10 ADDR
=`ifconfig "$IFACE" | grep inet | cut -d ":" -f2 | cut -d " " -f1`
11 LOCK
="/tmp/watchdog.$PREFIX"
14 DST
=`nvram get mwan_ckdst`
15 HOSTLIST
=`echo $DST | sed 's/,/ /'`
17 RXBYTES1
=`cat /sys/class/net/$IFACE/statistics/rx_bytes`
18 for HOST
in $HOSTLIST; do
19 # we need only send/receive few packages to be sure is connection works.
20 # Probe = 1, Max hops = 3
21 traceroute -i $IFACE -w 1 -m 3 $HOST > /dev
/null
2>&1
23 RXBYTES2
=`cat /sys/class/net/$IFACE/statistics/rx_bytes`
24 if [ "$RXBYTES2" == "$RXBYTES1" ]; then
25 logger WAN Watchdog
- Connection
$PREFIX down
- Reconnecting ...
26 echo "0" > /tmp
/"$PREFIX"_state
28 if [ "$PROTO" == "lte" ]; then
31 if [ "$PREFIX" == "wan" ]; then
34 service
$PREFIX restart
39 echo "1" > /tmp
/"$PREFIX"_state
44 CKTIME
=`nvram get mwan_cktime`
45 MINS
=`expr "$CKTIME" / 60`
47 if [ "$MINS" -gt 0 ]; then
48 ISSET
=`cru l | grep watchdog_"$PREFIX" | wc -l`
50 if [ "$ISSET" == "0" ]; then
51 cru a watchdog_
$PREFIX "*/$MINS * * * * /usr/sbin/watchdog $PREFIX"
54 echo "0" > /tmp
/"$PREFIX"_state
58 ISSET
=`cru l | grep watchdog_"$PREFIX" | wc -l`
60 if [ "$ISSET" == "1" ]; then
61 cru d watchdog_
"$PREFIX"
66 if [ -f $LOCK ]; then #lock exist
67 logger WAN Watchdog
- another proces
in action
for $PREFIX
75 if [ -f /etc
/switch3g.lock
-o -f /etc
/switch4g.lock
]; then
76 logger WAN Watchdog
- switch3g or switch4g
script in action
for $PREFIX - skip
82 ###################################################
89 if [ "$2" == "add" ]; then
91 elif [ "$2" == "del" ]; then