Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Отключить SSID через SSH, UniFi Network
 
Привет! Сейчас у меня есть несколько точек доступа, подключённых к Unifi Controller с несколькими сайтами. На одном из этих сайтов, где есть несколько SSID, я хочу иметь возможность отключать один из SSID через какой-то ярлык или скрипт. Я знаю, что можно включать и отключать SSID через веб-интерфейс, но это не подходит под нужды клиентов, поэтому подумал, что можно сделать это с помощью скрипта. Расписание времени доступа не подходит.

Я пробовал подключаться по SSH к точке доступа и редактировать конфигурационный файл в /tmp/system.cfg, менял radio.1.virtual.2.status на disabled. Но после сохранения командой cfgmtd -f /tmp/system.cfg -w и перезагрузки точка доступа перестаёт управляться контроллером и показывает статус heartbeat missing/disconnected.

Есть ли способ сделать это через SSH, не потеряв возможность дальше управлять контроллером? Просто переопределить включение/отключение SSID, как это можно сделать через веб-интерфейс? Какой параметр нужно сменить на disabled для отключения одного SSID?

Заранее спасибо!
 
Никто не знает решения этой задачи? Я тоже хочу управлять доступностью одного из моих SSID через shell-скрипт... Не могу поверить, что с такой системой это невозможно. У меня стоит Cloud Key.
 
Ты уже разобрался с этим? Мне тоже интересно.
 
Вот быстрый пример: #!/usr/bin/php
<?php

require('/root/scripts/Client.php');
error_reporting(0); // смените на 1 для отладки/просмотра ошибок

// настройка
$controller_url = "https://127.0.0.1:8443";
$controller_username = "a_site_admin_username";
$controller_password = "a_site_admin_password";
///

$site_wanted = $argv[1];
$ssid_wanted = $argv[2];
$enable_or_disable = $argv[3];

if (!$site_wanted || !$ssid_wanted || !$enable_or_disable || ($enable_or_disable != "enable" && $enable_or_disable != "disable")) {
   print "Использование: $argv[0] <site_id> <ssid> <enable|disable>\n";
   print "Пример: $argv[0] bs2lupvp MYSSID disable\n";
   exit;
}

$unifidata = new UniFi_API\Client($controller_username, $controller_password, $controller_url);
$unifidata->set_debug(false);
$loginresults = $unifidata->login();

if ($loginresults === 400) {
   print "ОШИБКА: Не удалось войти в контроллер\n";
   exit;
}

$unifidata->set_site($site_wanted);
$wlans = $unifidata->list_wlanconf();
$err = $unifidata->get_last_error_message();

if ($err) {
   print "ОШИБКА: $err — скорее всего, неверный site_id\n";
   $unifidata->logout();
   exit;
}

$found = 0;
foreach ($wlans as $wlan) {
   $ssid_list .= $wlan->name . " ";

   if ($wlan->name == $ssid_wanted) {
       $found = 1;
       if ($enable_or_disable == "enable") {
           $unifidata->disable_wlan($wlan->_id, $disable = false);
       } else {
           $unifidata->disable_wlan($wlan->_id, $disable = true);
       }

       $err = $unifidata->get_last_error_message();

       if ($err) {
           print "ОШИБКА: $err\n";
           $unifidata->logout();
           exit;
       } else {
           print "SSID $ssid_wanted на сайте $site_wanted установлен в состояние $enable_or_disable\n";
       }

       break;
   }
}

if (!$found) {
   print "ОШИБКА: SSID $ssid_wanted не найден на сайте $site_wanted — доступные SSID: $ssid_list\n";
   $unifidata->logout();
   exit;
}

$unifidata->logout();
exit;

?>
 
Привет, спасибо за ответ. Не мог бы ты чуть подробнее объяснить, как это сделать? Где мне смотреть, чтобы понять, какую настройку нужно изменить? Извини, но у меня нет опыта работы с устройствами через API. Редактирую: нашёл твой API-браузер и проверил demo.ubnt. Правильно ли я понимаю, что единственная нужная настройка — это включить ("enabled") параметр с именем ("name") в разделе "wlan config"? Пока не очень понимаю, как это сделать, но обязательно разберусь :-)
 
Лучший вариант для автоматизации такого рода — использовать API вместо доступа к устройствам через SSH. PHP API клиент, который я поддерживаю, позволит вам сделать это с помощью метода/функции set_device_settings_base(): https://github.com/Art-of-WiFi/UniFi-API-client/blob/master/src/Client.php#L1737-L1752. Ссылки смотрите в моей подписи.
Страницы: 1
Читают тему (гостей: 1)