Перейти к содержимому


Фотография

Скрипт перезагрузки роутера по telnet


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 deisik

deisik

    Пользователь

  • 43 topics
  • Пользователи
  • PipPip
  • 38 сообщений

Отправлено 17 августа 2020 - 11:20

Всем доброго времени суток.
Тут мелькало много тем по ребуту роутера при потере связи, мало толковых решений...
Вот моё :

простые скрипты на bash для линукс. (Если кому надо для винды - их есть у меня )
код с комментами, читайте - там всё предельно ясно.

первый скрипт обзываем ping и кидаем в /home/$USER

Код:
#!/bin/bash
#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)
Вам же нужно будет зайти по телнет на свой роутер и посмотреть, что он у вас спрашивает при входе, и какие строки ввода нужны.

Код:
#!/usr/bin/env expect

#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 ping
chmod +x restart-router

И в самом конце - добавляем наш ping в cron

Код:
crontab -e

дописываем в конец

Код:
#ping and reboot every 10 minutes
*/10 * * * * /home/user/ping


Если у вас HIVEOS, как у меня - crontab -e не сработает, так что открываем любым редактором /hive/etc/crontab.root и дописываем задание там.

  • 0

#2 kater

kater

    Пользователь

  • 0 topics
  • Пользователи
  • PipPip
  • 79 сообщений

Отправлено 02 октября 2020 - 03:02

А потом регулярно проверяем не перезаписался ли файл дефолтным без нашего задания. Я с полгода назад писал в hive подобные конструкции, так crontab регулярно оказывался перезаписаным дефолтным, то после обновлений то после банального ребута. Может сейчас поправили?


  • 0

#3 neron

neron

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 259 сообщений

Отправлено 03 ноября 2020 - 09:06

Проще, надежнее и безопаснее собрать роутер на компьютерном железе. Отдельной железкой или виртуалкой.
И там уже его можно в любую позу ставить без оглядки на причуды вендора.

  • 0

#4 вышибала

вышибала

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 27 ноября 2020 - 08:21

опишите механизм действия плз.
ну и под винду мне интересно - заделитесь плз.

  • 0

#5 Shaman

Shaman

    Новичок

  • 0 topics
  • Пользователи
  • Pip
  • 9 сообщений

Отправлено 12 декабря 2020 - 04:48

А разве зюксел не имеет ping checker? Это ж стандартная тулза.


  • 0

#6 Veter

Veter

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 150 сообщений

Отправлено 04 января 2021 - 03:48

после ребута точно не перезаписывается.
перезапишется только если сделать через crontab -e

  • 0

#7 Stomae

Stomae

    МЕСТНЫЙ

  • 0 topics
  • Пользователи
  • PipPipPip
  • 358 сообщений

Отправлено 17 февраля 2021 - 08:38

это прекрасное решение, например собрать на viOS или pfSense, но в силу обстоятельств приходится использовать связку из антенны LTE + роутер. Всё вместе у меня именутся как Zyxel LTE6101, можете загуглить. Проклятый мегафон (а только его симку я смог найти с безлимитом) имеет привычку отрубать мою антенну от своей вышки примерно в 00-00
Вот и приходится выдумывать костыли.
Даже если я соберу железку, мне придётся менять антенну. Я этого делать не хочу

  • 0

#8 DdosKing

DdosKing

    Новичок

  • 1 topics
  • Пользователи
  • Pip
  • 13 сообщений

Отправлено 16 марта 2021 - 09:33

Механизм очень прост.
Конкретно для Линукс имеем два файла, ping (можно назвать как угодно) и restart-router
в файле пинг описываем цикл
если команда ping -c1 8.8.8.8 нам ничего не возвращает - вызываем второй файл restart-router
если ping -c1 8.8.8.8 отрабатывает - выходим
 
в файле restart-router задаём переменные
username
pass
host
далее вызываем telnet с переменной host
ожидаем из консоли "router login:"
кидаем туда наши переменую user
ждём от роутера запрос пароля
посылаем pass
ждём приветствие
посылаем reboot
выходим из telnet
завершаем скрипт
 
 
ставим в линуксовый планировщик наш скрипт ping и наслаждаемся результатом.

  • 0

#9 kulaHkov

kulaHkov

    Пользователь

  • 0 topics
  • Пользователи
  • PipPip
  • 71 сообщений

Отправлено 20 апреля 2021 - 07:01

Это не привычка, это интерференция. Какие показатели сигнала? Я бы на твоём месте ушёл бы на dc-hspa , если интернет используется только для видосиков\ферм. Купи любой зюксел кинетик+ е3372 на хайлинке, и будет тебе счастье.


  • 0

#10 SupportLR

SupportLR

    Пользователь

  • 0 topics
  • Пользователи
  • PipPip
  • 98 сообщений

Отправлено 20 мая 2021 - 07:16

По моему так проще купить дешманский микротик и потратить вечер на написание скрипта описывающего процедуру мониторинга.
У меня микротик следит за состоянием свистка, состоянием туннеля, учитывает наличие трафика на интерфейсе и если надо перегружает либо то, либо другое, либо все вместе или если совсем не поднимается то и сам себя.

  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных