Я создаю удаленный API, который будет извлекать данные из балансировщика нагрузки A10 через SSH и передавать их веб-интерфейсу в формате JSON. Я предпочитаю библиотеку phpseclib, поскольку я использовал ее для аналогичных целей, но с другими устройствами (серверами rhel, маршрутизаторами cisco и т. д.). Вот в чем дело: балансировщики нагрузки A10 обслуживают некоторые проблемы с синтаксисом командной строки, когда я пробовал phpseclib $ssh->exec("show gslb service-ip");
Я не очень хорошо разбираюсь в синтаксисе командной строки балансировщика нагрузки A10, чтобы точно знать, где искать проблему.
Я также установил sshpass на свой сервер, чтобы провести некоторое тестирование, и он возвращает то же самое, поэтому я не уверен, в чем проблема, поскольку Google ничего не обнаружил. Это может быть простая модификация phpseclib? простой взлом с одним вкладышем? Помощь!
<?php
include_once("phpseclib/Net/SSH2.php");
$ssh = new Net_SSH2("<a10 load balancer ip>");
if(!$ssh->login("<username>","<password>")) {
echo 0;
} else {
echo "Pulling configuration...";
echo $ssh->exec("show gslb service-ip");
}
?>
Вот мой ответ, когда я запускаю из командной строки
[root@<servername> php]# php controller.php
Pulling configuration...
/a10/bin/rimacli: invalid option -- c
[root@<servername> php]#
Поиск в Google по запросу «/a10/bin/rimacli: недопустимая опция -- c» не дает многого, поскольку я уверен, что это всего лишь опция/синтаксис командной строки, которую редко видят пользователи балансировки нагрузки A10.
Чем SSH отличается от A10? ПОМОЩЬ :)
enablePTY()
). В качестве альтернативы, это может работать лучше в интерактивной оболочке. например.read()
/write()
. - person neubert   schedule 14.11.2014