Więc podsumowanie dla laików takich jak ja:
1) Zrobić skrypt który resetuje modem Hilink o nazwie restart.sh (musi byc zainstalowany curl)
touch /bin/restart.sh
chmod 755 /bin/restart.sh
vi /bin/restart.sh
O treści:
#!/bin/bash
token=$(curl -s -X GET http://192.168.8.1/api/webserver/token | grep token | cut -d '>' -f2 | cut -d '<' -f1)
curl -X POST -d "<request><Control>1</Control></request>" --url http://192.168.8.1/api/device/control -H "__RequestVerificationToken: $token" -H "Content-Type: text/xml"
2) Zrobić skrypt tester.sh który sprawdza połączenie pingując do googla i jeśli brak pinga to wywoła skrypt restart.sh:
touch /bin/tester.sh
chmod 755 /bin/tester.sh
vi /bin/tester.sh
O treści
#!/bin/sh
if ! ping -q -c 5 -W 10 google.com > /dev/null; then
(restart.sh) &
fi
3) Dodać do Crona:
/etc/init.d/cron stop
echo "*/30 * * * * /bin/tester.sh" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start