Как стать автором
Обновить

Удаленный мониторинг и управление устройств на базе Linux/OpenWrt/Lede через 80-ый порт…

Время на прочтение6 мин
Количество просмотров14K
Всего голосов 17: ↑16 и ↓1+15
Комментарии14

Комментарии 14

Логин и пароль открытым текстом в URL? Месье знает толк в извращениях… Тут даже https не спасет. Почему бы не сделать через POST\GET за https?
Это статья из песочницы, и, подозреваю, что, как и многие предыдущие, она там слишком долго пролежала. Но ответ на ваш вопрос содержится в блоке «Примечание номер два».
Вопрос был про POST. wget умеет POST без увеличения размера.
Вы говорите про параметр --post-data для wget? В составе прошивок OpenWrt/Lede для мелких роутеров с памятью 4МБ wget идет без этой опции. Ну точнее на момент сбора прошивки вы вольны выбирать wget с какими опциями включать, но «нэ лезет». И это не совсем извращение — мы порой простой не знаем, с какими роутерами и с какой прошивкой придется работать, поэтому делаем «универсальный велосипед». А bash и wget (хоть и ужатый) — есть практически везде.
Мне кажется некоторый логический изъян. Допустим модем не зарегистрировался, но это означает. что он не выполнил wget, а значит и не скачал скрипт. Т.е. ребутнуть его уже возможности нет… или я что-то упускаю?
Видимо, «reboot» это просто как пример. Понятное дело, что если роутер завис полностью, то и команду выполнить он не сможет.
Есть менее оригинальные способы узнать есть ли у нас роутер на связи… Я не к тому, что статья некорректная. Сам отпахал 4 года на Крайнем Севере и знаю на сколько важно понимать «загнулось» ли оборудование и в какой стадии. И статью в закладки добавил.
Но вдруг я что-то упускаю, и это решение? Вопрос то к автору был…
По поводу невозможности модема зарегистрироваться — это больше вопрос методологии. Поясню: когда планируется развертывание сети подобных устройств: подбирается одна модель роутера, одна модель модема и одна стабильная версия прошивки OpenWRT/Lede/ЧтоТоСвое. Все это тестируется, причем не только по софту но и хардкорно, например «а что будет если выдернуть модем на рабочем роутере и вставить его обратно без перезагрузки?». Если позволяет время и клиент, то 1-2 тестовых образца ставятся уже непосредственно на местности и за ними продолжается наблюдение 1-2 недели. Конкретно по модему: Во-первых делаю «обвязку» bash-скриптов на случай, если в течение 10 минут модем «не вышел на связь», например «подними-ка еще разочек pptp интерфейс, а ?», во-вторых в прошивке предусматривается строки инициализации для всех моделей модемов.
Ладно. Получается я понял правильно. Основная идея как оставить оборудование на связи в том, что в самом роутере запилить крон-задачу, которая тем или иным способом проверяет состояние модема и ребутит его (при необходимости). (часть пропущена за своей простотой).
На стороне сервера просто проверяется скачивался ли скрипт и во сколько.
Теперь правильно?
Верно. И если пойти дальше то все взаимодействие между удаленным устройством и сервером должно быть сведено к следующему диалогу:
Устройство: «Привет, я железка такая-то. Поручения будут ?»
Сервер: «Принято, записал что ты „живой“. Поручений нет».
Ну а по поводу команд — да, семь бед — один ответ/reboot. Но не только. Может быть и вот такой ответ сервера:
Сервер: «Принято записал что ты живо. Поручение: „попингай вот это->вывод команды в файл->содержимое файла пришли мне“
Хотелось бы в тему спросить — а кто-нибудь игрался на openwrt c пакетом usbreset? В ситуации с отваливанием того же модема он срабатывает как аналог физического переподключения модема в порт? А то в свое время руки не дошли, а сейчас уже роутеры далеко и эксперементировать с ними удалённо не хотелось бы.
Да, насколько я помню.
На сколько я понял эта фича не во всех роутерах работает — там там одним из GPIO рулится шина питания на USB разъеме дополнительным ключем/транзистором.

У приведенного для примера TP-LINK ML3020 такой ключик стоит, но мне попадались роутеры где питание внешнего USB заведено на шину +5 напрямую. Хотя может быть это очень старые роутеры были…
Обычно питание можно дёрнуть USB контроллером. Даже банальной записью 0/1 через /sys/bus/usb/devices/…
Если заведено питание напрямую, то им и reboot особо не поможет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории