Управление POE портами коммутатора Mikrotik CSS106-1G-4P-1S из bash

Автор: | 26.04.2026

Появилась у меня задача небольшая. Удаленно перезагрузить точки доступа, которые запитаны от PoE коммутатора Mikrotik CSS106-1G-4P-1S. Через веб-интерфейс это сделать не сложно, хоть и не очень удобно реализовано. В RouterOS есть опция blink, которая передергивает питание. В SwitchOS Lite, которая установлена на этом коммутаторе, можно только отдельно выключить и включить порт.

Вроде ничего сложного нет, но есть подвох. Произошло это именно во время поездки в другой город. Учитывая ситуацию с мобильным интернетом в 2026 году, вышел тот ещё квест. После звонка я только минут через 10 въехал в зону с работающим интернетом, где смог подключиться по SSH до работы и зайти в коммутатор. Но зайти мало, надо ещё дать команду на выключение порта, выждать время, дать команду на включение порта. Умножить на количество точек доступа. И это в пути, когда мобильный интернет может пропасть.

Решение — заскриптовать процедуру. Оно хоть и не часто требуется, но лучше предусмотреть на будущее. Обратился к нейронке на эту тему, но готового решения не нашлось. Вроде есть библиотеки для Python, но они у меня не заработали. Никакого SSH в SwitchOS нет, по SNMP записать ничего не выйдет, так как в SwitchOS Lite SNMP работает в режиме ReadOnly. Выходить нужно реверсить HTTP API.

Открываем отладчик браузера и смотрим обмен. Вроде все понятно, но самому лень это делать. В итоге за 13 запросов DeepSeek мне набросал скрипт на Bash, который умеет управлять состоянием PoE портов коммутатора. Для работы потребуется только curl.

Скрипт выводит подсказки при запуске, но продублирую их тут.

Использование: ./mikrotik_swos.sh [OPTIONS] {status|reboot|set|monitor|raw}

OPTIONS:
  -h <ip>       IP адрес коммутатора (по умолчанию: 192.168.1.1)
  -u <user>     Логин (по умолчанию: admin)
  -p <pass>     Пароль
  -t <sec>      Таймаут перезагрузки в секундах (по умолчанию: 5)
  -T <sec>      Таймаут curl соединения (по умолчанию: 5)

Команды:
  status              - показать статус всех портов
  reboot <port>       - перезагрузить PoE на порту
  set <port> <state>  - установить состояние PoE (off, auto, on)
  monitor             - непрерывный мониторинг (Ctrl+C для выхода)
  raw                 - показать сырой ответ API

Состояния PoE:
  off   - PoE выключен (0x00)
  auto  - PoE в режиме AUTO (0x01)
  on    - PoE принудительно включен (0x02)

Примеры:
  ./mikrotik_swos.sh status
  ./mikrotik_swos.sh -h 10.0.0.100 -p mypass reboot 4
  ./mikrotik_swos.sh -t 3 reboot 2
  ./mikrotik_swos.sh set 5 auto

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *