Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Перезапустить PoE-порт на UniFi Switch удалённо., UniFi Network
 
Я понимаю, что это можно сделать через пользовательский интерфейс на контроллере, но мне нужно делать это автоматически через SNMP, HTTP POST или каким-то другим автоматизированным способом. У меня есть несколько POE Android-планшетов, которые показывают автоматические сообщения и нуждаются в перезагрузке после рестарта или обновления сервера сообщений. Поэтому было бы идеально, если бы я мог просто отправлять кучу SNMP set-команд с сервера. Есть идеи, как это сделать? Maciej
 
Да, безусловно, это большое упущение, что нельзя сделать SNMP set для перезагрузки порта, как это можно на самом дешевом POE Dlink. Написать скрипт, который будет перезапускать порт при отсутствии пинга — заняло бы 10 минут. Сообщи, если найдёшь решение, я правда не хочу менять свитч за 600 долларов ради этого.
 
Черт, кто-нибудь недавно этим пользовался? У меня свитч Unifi на 16 портов, и таких команд, похоже, больше нет 🙁 Помогите.

@UBNT-MikeD — ты моя последняя надежда.  
EDIT: Ладно, надо было раньше ссылки почитать... Нужно зайти на свитч по ssh. Потом ввести telnet localhost 2222 и нажать Enter. Ничего не появится. Наугад ввести: en и нажать Enter. После этого можно следовать инструкциям от @xsherlock. Он почти то же самое написал, но, видимо, недостаточно ясно объяснил, что где происходит.

Если кому-то пригодится, вот сессия терминала, когда у меня наконец получилось. Я пытаюсь перезагрузить порт 9 по питанию (надеюсь, CloudKey подсоединён именно там, уже не вспомню точно):

Back16PortSwitch-US.v3.9.50# telnet localhost 2222  
en  
Warning!  
The changes may break controller settings and only be effective until reboot.

(UBNT) >?  
?  
enable — вход в режим пользователя с повышенными привилегиями.  
exit — выход из сессии. Несохранённые изменения будут потеряны.  
help — помощь по специальным командам.  
logout — выход из сессии. Несохранённые изменения будут потеряны.  
password — смена пароля существующего пользователя.  
quit — выход из сессии. Несохранённые изменения будут потеряны.  
show — отображение настроек свитча.

(UBNT) >  
(UBNT) >enable  
enable

(UBNT) #configure  
configure

(UBNT) (Config)#interface 0/9  
interface 0/9

(UBNT) (Interface 0/9)#poe opmode shutdown  
poe opmode shutdown

(UBNT) (Interface 0/9)#poe opmode auto

Back16PortSwitch-US.v3.9.50# — это приглашение в консоли, когда заходишь по ssh (оно по имени свитча, у меня он Back16PortSwitch), а в режиме конфигурации приглашение меняется на (UBNT).

К счастью, команда show interfaces status all действительно вывела статус и названия портов. Оказалось, что я подключил CloudKey к порту 2, а не к 9, что было кстати.
 
Не уверен, что это лучший способ, но работает. У меня на сервере с Windows, где запущен Blueiris, установлен putty. Я создал .BAT файл с такой однострочной командой:  
plink -v Myusername@MyswitchIP -pw MyPassword "(echo "enable" ; echo "configure" ; echo "interface 0/16" ; echo "poe opmode shutdown" ; echo "poe opmode auto" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;"  
Это нормально перезагружает камеру, подключённую к порту 16.  
Спасибо!
 
Мне нужна помощь, чтобы это запустить. Я использую Blueiris, в нем есть встроенный watchdog для камер, который может запускать программу, выполнять скрипт или отправлять HTTP POST запрос. У меня есть Putty и небольшой опыт работы с SSH, но я никогда не работал с моим POE коммутатором Unifi на 24 порта. Надеюсь, смогу сделать .BAT файл или что-то подобное, который будет срабатывать, когда камера перестанет отвечать, чтобы перезагрузить этот порт. Прочитал информацию, но немного запутался и нужен подробный разбор, как это сделать и что для этого нужно. Спасибо!
 
Также есть команда passive24v. Но я согласен, если она не работает — стоит делать RMA.
 
С аппаратной частью иногда случаются глюки. https://community.ui.com/questions/7289a533-9512-4440-a2bf-4ec71e572a0f Оформляйте RMA.
 
Да, мой порт был на 24V пассивном по данным контроллера Unify. Я действительно не понимаю, что произошло... Сейчас единственные режимы работы PoE — это отключение или авто? Мне не удалось разобраться с другими вариантами режимов работы. Спасибо, OvO
 
Ты проверил, что напряжение POE выставлено правильно? Либо 24 В, либо 48 В — в зависимости от того, какая у тебя камера. У меня на IP-камерах режим auto почему-то не работал, поэтому я просто выставил нужное напряжение вручную. Вот мой скрипт для bash. Такой тип массива не будет работать в freeBSD или openWRT, если не поставить bash. Спасибо @xsherlock за однотипную команду для входа.

#!/bin/bash

# создаём ассоциативный массив. Каждая камера имеет статический IP и подключена к определённому порту.
declare -A cameras
cameras[0/1]="192.168.1.30"
cameras[0/2]="192.168.1.38"
cameras[0/3]="192.168.1.31"
cameras[0/4]="192.168.1.32"
cameras[0/5]="192.168.1.34"
cameras[0/6]="192.168.1.35"
cameras[0/7]="192.168.1.36"
cameras[0/8]="192.168.1.37"

cmd=sshpass -p yourpass ssh user@192.168.1.6 '(echo "enable"; echo "configure"; echo "interface '$i'"; echo "poe opmode shutdown"; echo "poe opmode auto"; echo "exit"; echo "exit"; echo "exit") | telnet localhost 23; exit;'

for i in "${!cameras[@]}"
do
ping ${cameras[$i]} -c 3 > /dev/null && echo "Up" || $cmd
#echo $i
#echo "interface $i"
#echo ""
done
 
Может, взгляни на это? https://community.ui.com/questions/f056e12f-d7e9-464f-80a0-ca27283e780f https://community.ui.com/feature-requests/61be6051-096c-47e3-9d94-b6ec610a2996
 
Привет! Спасибо за быстрый ответ. Мне удалось запустить скрипт. Но, возможно, я поторопился или использовал не ту команду, и кажется, что я «спалил» один из своих точек доступа 🙁 Хотел попробовать выключить/включить PoE-порт, чтобы управлять активностью одной из точек. После нескольких манипуляций через telnet получил на коммутаторе ошибку перегрева. Затем у всех точек доступа появилась ошибка типа «Heartbeat missing» и они отключились. После нескольких попыток оказалось, что если я оставляю точку, которую пытаюсь выключить/включить через PoE, подключённой к коммутатору, у всех точек доступа пропадает «heartbeat» и они отключаются 🙁 Если же её отключить — всё работает нормально. Пробовал сбросить точку доступа к заводским настройкам, но безуспешно... Похоже, попробую найти другой способ выключать/включать точку. Видел в контроллере Unify функцию отключения точки доступа, может, попробую зайти на неё по ssh и попросить отключить. Надеюсь, потом смогу её снова включить 😀 OvO
 
Итак, чтобы получить доступ к telnet, следуйте этой ссылке https://community.ui.com/feature-requests/61be6051-096c-47e3-9d94-b6ec610a2996. По умолчанию telnet-сервер работает на порту 2222, поэтому у вас и возникла ошибка. При желании можно включить его на порту 23, как описано в вышеуказанном посте. Я выложу свои два скрипта, когда позже доберусь до дома. Один работает в любом bash-окружении, другой — на BSD/openWRT с sh/csh.
 
Привет, мне очень нравится твоё решение, так как я тоже хочу управлять включением и отключением некоторых POE-портов на моём коммутаторе Unify Switch 24/250W с версией ПО v3.7.5. Я могу зайти на коммутатор через SSH, но команда telnet не работает. Выдаёт ошибку: telnet: не удаётся подключиться к удалённому хосту (127.0.0.1): Отказано в соединении. Я использую пользователя с правами администратора, так что не подскажешь, нужно ли что-то включать на самом коммутаторе? Извини, я новенький в технике Ubiquity. Спасибо, OvO
 
Да, я наткнулся на sshpass и порт для freeBSD/pfSense. У меня там настроена cron-задача для этого, но твоя однострочника выглядит гораздо проще, чем то, что делал я. Отличная работа!
 
$ sudo apt-get install sshpass  
$ sshpass -p your_password ssh user@hostnamedoes – это работает в скрипте.  

А вот такая длинная команда с удалённого хоста перезагружает порт:  
sshpass -p xxxxxxx ssh admin@172.16.10.6 '(echo "enable"; echo "configure"; echo "interface 0/38"; echo "poe opmode shutdown"; echo "poe opmode auto"; echo "exit"; echo "exit"; echo "exit") | telnet localhost 23; exit;'
 
Да, это работает. Спасибо! Теперь осталось только дописать скрипт. Раньше в другой теме заметил, что, скорее всего, для входа с автоматизированного скрипта придётся использовать сертификат. Как только разберусь, выложу код. Спасибо.

@xsherlock
 
Работает на коммутаторе UniFi. Не так удобно, как настройка через SNMP, и в целом жуткая морока, но сработает.

ssh admin@x.x.x.x  
telnet localhost 23  
enable  
configure  
interface 0/x  
poe opmode shutdown  
poe opmode auto  

где x — номер порта. Повторите последние три шага для всех нужных портов.

Большое спасибо!
 
Мне почти то же самое нужно. У меня есть локация, где часто пропадает питание, и иногда камеры Unifi не выходят в онлайн. Я могу зайти в коммутатор и просто перезапустить порт, тогда они снова начинают работать. Было бы очень удобно иметь возможность написать скрипт с пинг-сенсором, который, если устройство не отвечает, проверял бы статус порта на коммутаторе и перезапускал его при необходимости. Было бы здорово, если бы для этого была возможность отправлять HTTP POST-запросы или даже выполнять SSH-команды.
Страницы: 1
Читают тему (гостей: 1)