Страница 3 из 3

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

Добавлено: Пн мар 19, 2018 10:58 am
skysilver
yurat2008 писал(а):Да родная прошивка, через ихнее приложение можно ребутнуть,но геморно. Переодически приложение просит логин и пароль от учетки, причем как то бессистемно это происходит
Можно заморочиться и добавить поддержку перезагрузки роутера в модуль Xiaomi miIO. Но для этого нужно выяснить токен роутер, а также отснифить трафик между роутером и Михом и выдрать от туда нужную команду.

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

Добавлено: Чт окт 11, 2018 8:04 pm
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

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

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


Отправлено с моего iPhone используя Tapatalk

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

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


Отправлено с моего iPhone используя Tapatalk
Это скорее всего на прошивке NDMS v2, у меня пока V1. Надо попробовать вторую версию поставить. Хотя уже думаю новый покупать :) .
Писал скорее для себя, чтоб потом опять велосипед не изобретать. Уже один раз сделал, потом при очередном обновлении файл слетел, пришлось снова форумы рыть...

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

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

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

Добавлено: Вт авг 31, 2021 10:29 am
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

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

Добавлено: Вт авг 31, 2021 5:41 pm
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
Спасибо.Всё получилось.