У меня есть UBNT Toughswitch, и я пытаюсь удаленно отключить питание PoE своим мобильным телефоном с помощью php и скриптов. Я делаю это с помощью похожих скриптов с UBNT mFi. Сценарий работает нормально, если я подключаюсь к серверу по SSH (w / root, только пользователь, которого я когда-либо настраивал) и запускаю его в расположении, в котором он находится. Я проверил все поля R / W / E в сценарии и код php на случай, если он был проблема разрешения php. Итак, вот сценарии:
PHP для вызова сценария с запросом http get:
<?php
system ( "./tsport3-24-off.sh" );
?>
<script type="text/javascript">
window.close();
</script>
Вот ожидаемый сценарий:
#!/usr/bin/expect
set timeout 30
spawn ssh shane@$ip
expect {
"*assword:*" {
send "$password\r"expect {
"*assword:*" {
close
continue
}
"*#*" {
send "grep -v 'switch.port.3.poe=48' /var/tmp/system.cfg > /var/tmp/tmpsystem.cfg; mv /var/tmp/tmpsystem.cfg /var/tmp/system.cfg\r"expect {
"*not found*" {
close
}
"*#*" {
send "save && reboot\r"interact
}
}
}
}
}
}
Это пройдет через все до сохранения && перезагрузить часть и не будет делать это при вызове через php. Через SSH работает нормально. Я также попытался сохранить и перезагрузить с 2 различными командами на случай, если это не понравилось &&и выделил это в отдельный скрипт, чтобы убедиться, что это где. Это как PHP просто отказывается отправить сохранить && перезагрузка по какой-то причине, например, из-за проблем с правами доступа, но она отправляет его на другое устройство через ssh, поэтому для меня это не имеет смысла. Это отключение poe 24v на порту 3. У меня есть другие для включения (24/48) и перезагрузки, которые работают без php, но не с php.
Не 100% ответ, но это работает.
Если я добавлю другое сохранение && перезагрузиться так:
expect "*#*"send "save && reboot/r"expect "*#*"send "save && reboot/r"
Он не выдает ошибку при запуске скрипта php, вероятно, если я запускаю его нормально, но это все равно не было моим намерением. Подумайте, это проблема с выбором времени # где-то при запуске php.
Других решений пока нет …