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

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

Модератор: immortal

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

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

Сообщение skysilver » Пн мар 19, 2018 10:58 am

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

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

Сообщение olegvolk75 » Чт окт 11, 2018 8:04 pm

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
За это сообщение автора olegvolk75 поблагодарил:
C_3AXAPOB (Пт май 03, 2019 1:43 am)
Рейтинг: 1.16%
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
Alex-Domo
Сообщения: 28
Зарегистрирован: Пт мар 30, 2018 11:03 am
Благодарил (а): 0
Поблагодарили: 3 раза

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

Сообщение Alex-Domo » Ср окт 17, 2018 12:58 pm

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


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

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

Сообщение olegvolk75 » Пн окт 29, 2018 11:23 am

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
Благодарил (а): 7 раз
Поблагодарили: 4 раза

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

Сообщение Shmit » Вт авг 31, 2021 7:44 am

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

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

Сообщение 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
За это сообщение автора savenko_egor поблагодарили (всего 2):
SmoKE_xDDD (Вт авг 31, 2021 10:30 am) • Shmit (Вт авг 31, 2021 5:42 pm)
Рейтинг: 2.33%
Shmit
Сообщения: 78
Зарегистрирован: Вс дек 25, 2016 1:46 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

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

Сообщение Shmit » Вт авг 31, 2021 5:41 pm

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
Спасибо.Всё получилось.
Ответить