Watchdog (software for wwan, X750)

Hi searched online and in the router config, could not find a yes (where) / no answer:

Is there a ready to use solution for handling breaking down of LTE (4G) WWAN connections in the X750 device? (i can script myself but when the feature is already there…)

Thanks

lopiuh

hacked a small script, which get startet in init (for autostart see http://blog.kerematam.com/2016/12/creating-script-to-run-on-boot-for.html)

#!/bin/sh
_pingcount=1
_pingtimeout=3 #Sekunden
_netstatnew=""
_sleepstart=60 #Sekunden
_sleepshort=10 #Sekunden
_sleeplong=300 #Sekunden
_nameforlog=“mywatchdog”

logger “$_nameforlog gestartet, warte $_sleepstart Sekunden bis zur ersten Kontrolle”
sleep “$_sleepstart”
logger “$_nameforlog: sleep finished”
while [ 1 ]; do
_netstatold="$_netstatnew"
while ! _netstatnew="$(ifconfig wwan0 2>&1 | grep ‘RX packets’)"; do
logger “$_nameforlog ifconfig error (network not yet uo, retrying”
sleep 10
done
if [ “$_netstatnew” != “$_netstatold” ]; then
sleep “$_sleepshort”
else
logger “$_nameforlog: Kein Traffic innerhalb von ${_sleepshort} Sekunden, starte Ping-Test”
# innerhalb der kleinen Wartezeit gab es keinen Netzwerktraffic (oder die Leitung ist down)
# sofort den Ping-test, für Leitungstest.
if ! { ping -q -W “$_pingtimeout” -c “$_pingcount” 10.96.86.155 >/dev/null ||
ping -q -W “$_pingtimeout” -c “$_pingcount” 10.96.86.154 >/dev/null ||
ping -q -W “$_pingtimeout” -c “$_pingcount” 8.8.8.8 >/dev/null; }; then
# keiner der pings kam durch, also Modem aus
# X750 hard reset of modem
logger “$_nameforlog: Modem muss neu gestartet werden (aus)”
logger “$_nameforlog: Warte kurz ($_sleepshort Sekunden)”
echo 1 > /sys/class/gpio/gpio0/value
# be kind and wait
sleep 10
# Modem wieder ein
logger “$_nameforlog: Modem muss neu gestartet werden (ein)”
echo 0 > /sys/class/gpio/gpio0/value
else
#in der kleinen Wartezeit gab es keinen traffic, ping funktioniert aber, jetzt länger warten, damit nicht alle “kurze Zeit” ein Pingtest erfolgt
logger “$_nameforlog: Ping erfolgreich, schlafe etwas länger ($_sleeplong Sekunden)”
sleep “$_sleeplong” # Sekunden
fi
fi
done

1 Like

Thank you for the script you provided. At present, we have already done a set of daemons. Of course, I will also refer to your script to improve our connection mechanism.