Тут мелькало много тем по ребуту роутера при потере связи, мало толковых решений...
Вот моё :
простые скрипты на bash для линукс. (Если кому надо для винды - их есть у меня )
код с комментами, читайте - там всё предельно ясно.
первый скрипт обзываем ping и кидаем в /home/$USER
#replace '8.8.8.8' with your preferred address to ping. This is a Google DNS server address which you should be able to ping successfully if you are connected to the internet.
if ! /bin/ping -c 1 8.8.8.8
then
/home/user/restart-router # replace 'user' with your username
fi
Второй скрипт обзываем restart-router
это, собственно, сама "функция" чтоб ребутать наш роутер
Тут вам потребуется допилить под себя, потому что у всех роутеров телнет немного отличается. Я выкладываю под среднестатистический ZYXEL LTE (конкретно мой LTE6101)
Вам же нужно будет зайти по телнет на свой роутер и посмотреть, что он у вас спрашивает при входе, и какие строки ввода нужны.
#replace 'admin' with your username
set username admin
#replace 'password' with your password
set pass password
#replace 192.168.1.1 with your router's IP address, if it differs
set host 192.168.1.1
spawn telnet ${host}
expect -re "router login:"
send "${username}\r"
expect "Password:"
send "${pass}\r"
expect -re "ZySH"
#replace 'reboot' with whatever your router's specific command is
send "reboot\r"
#replace 'logout' with whatever your router's specific command is
send "exit\r"
expect eof
Далее нам потребуется сделать наши скрипты исполняемыми
chmod +x restart-router
И в самом конце - добавляем наш ping в cron
дописываем в конец
*/10 * * * * /home/user/ping
Если у вас HIVEOS, как у меня - crontab -e не сработает, так что открываем любым редактором /hive/etc/crontab.root и дописываем задание там.