Перезагрузка рутера через telnet

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:

Re: Перезагрузка рутера через telnet

Сообщение skysilver »

yurat2008 писал(а):Да родная прошивка, через ихнее приложение можно ребутнуть,но геморно. Переодически приложение просит логин и пароль от учетки, причем как то бессистемно это происходит
Можно заморочиться и добавить поддержку перезагрузки роутера в модуль Xiaomi miIO. Но для этого нужно выяснить токен роутер, а также отснифить трафик между роутером и Михом и выдрать от туда нужную команду.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm

Re: Перезагрузка рутера через telnet

Сообщение olegvolk75 »

Varrcan писал(а): Пн окт 17, 2016 7:12 pm
EvgenyG писал(а):Подскажите, можно ли подключиться к рутеру Zyxel Keenetic II в локальной сети через telnet средствами MajorDoMo?
Хочу запускать команду на перезагрузку при отсутствие ping
https://zyxel.ru/kb/2916/
я у себя сделал так:
1 В корне создал файл /var/www/restart_router.sh

Код: Выделить всё

#!/bin/bash
(
sleep 5
echo "admin"
sleep 1
echo "password"
sleep 1
echo "system reboot"
sleep 1
echo "exit"
) | telnet 192.168.0.1
значения смените на свои.

2 В МД создал сценарий, в котором прописал дергалку этого файлика. Можно сделать примерно так:

Код: Выделить всё

say('Подключение к интернету отсутствует более трех минут. Попробую перезагрузить роутер...');
exec('/var/www/restart_router.sh');
 


3 Состояние интернета проверяю пингом к яндексу (Устройства Online):

Действие при переходе в Offline:

Код: Выделить всё

SetTimeOut("restartRouter","runScript('restartRouter');", 180); 
Действие при переходе в Online: (Это если вдруг интернет восстановился за 3 минуты)

Код: Выделить всё

ClearTimeOut("restartRouter"); 
Для Кинетик Гига файл будет чуть другой:

Код: Выделить всё

#!/bin/bash
(
sleep 5
echo "admin"
sleep 1
echo "password"
sleep 1
echo "sys reboot"
sleep 1
echo "exit"
) | telnet 192.168.0.1
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Alex-Domo
Сообщения: 28
Зарегистрирован: Пт мар 30, 2018 11:03 am

Re: Перезагрузка рутера через telnet

Сообщение Alex-Domo »

Добрый день! А зачем усложнять, роутер zyxel сам может pinc сайтов и при отсутствии инета перегружать интерфейсы, для этого перегружать роутер не нужно. Все подробно описано с настройками на сайте zyxel.


Отправлено с моего iPhone используя Tapatalk
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm

Re: Перезагрузка рутера через telnet

Сообщение olegvolk75 »

Alex-Domo писал(а): Ср окт 17, 2018 12:58 pm Добрый день! А зачем усложнять, роутер zyxel сам может pinc сайтов и при отсутствии инета перегружать интерфейсы, для этого перегружать роутер не нужно. Все подробно описано с настройками на сайте zyxel.


Отправлено с моего iPhone используя Tapatalk
Это скорее всего на прошивке NDMS v2, у меня пока V1. Надо попробовать вторую версию поставить. Хотя уже думаю новый покупать :) .
Писал скорее для себя, чтоб потом опять велосипед не изобретать. Уже один раз сделал, потом при очередном обновлении файл слетел, пришлось снова форумы рыть...
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm

Re: Перезагрузка рутера через telnet

Сообщение Shmit »

Подскажите, вроде всё сделал ,как в статье. Из командной строки в Armbian ,всё работает, скрипт запускается и всё работает.А вот в мажордомо , в консоле пешу
exec('/var/www/restart_router.sh') и не чего не происходит!
Пробовал safe_exec , shell safe_exec ,всё без результатно.
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Перезагрузка рутера через telnet

Сообщение savenko_egor »

Shmit писал(а): Вт авг 31, 2021 7:44 am Подскажите, вроде всё сделал ,как в статье. Из командной строки в Armbian ,всё работает, скрипт запускается и всё работает.А вот в мажордомо , в консоле пешу
exec('/var/www/restart_router.sh') и не чего не происходит!
Пробовал safe_exec , shell safe_exec ,всё без результатно.
exec запускается от пользователя на котором работает web сервер. Обычно это (apache или www-data). Нужно изменить собственника скрипта на того, от которого запущен web сервер. Тогда должно всё работать.
Узнать от кого работает сервер:

Код: Выделить всё

ps aux | grep 'apache\|httpd\|nginx\|php-fpm'
Изменить собственника для файла:

Код: Выделить всё

chown user: /var/www/restart_router.sh
Где "user" - это пользователь найденный из команды выше.
Так же скрипт должен быть запускаемый. Чтобы это сделать, нужно выполнить команду:

Код: Выделить всё

chmod +x /var/www/restart_router.sh
Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm

Re: Перезагрузка рутера через telnet

Сообщение Shmit »

savenko_egor писал(а): Вт авг 31, 2021 10:29 am
Shmit писал(а): Вт авг 31, 2021 7:44 am Подскажите, вроде всё сделал ,как в статье. Из командной строки в Armbian ,всё работает, скрипт запускается и всё работает.А вот в мажордомо , в консоле пешу
exec('/var/www/restart_router.sh') и не чего не происходит!
Пробовал safe_exec , shell safe_exec ,всё без результатно.
exec запускается от пользователя на котором работает web сервер. Обычно это (apache или www-data). Нужно изменить собственника скрипта на того, от которого запущен web сервер. Тогда должно всё работать.
Узнать от кого работает сервер:

Код: Выделить всё

ps aux | grep 'apache\|httpd\|nginx\|php-fpm'
Изменить собственника для файла:

Код: Выделить всё

chown user: /var/www/restart_router.sh
Где "user" - это пользователь найденный из команды выше.
Так же скрипт должен быть запускаемый. Чтобы это сделать, нужно выполнить команду:

Код: Выделить всё

chmod +x /var/www/restart_router.sh
Спасибо.Всё получилось.
Ответить