Выключение через s sh не работает должным образом - PullRequest
1 голос
/ 29 января 2020

вот моя проблема: у меня есть ap c, который я использую в основном через s sh, и недавно я создал бот-телеграмму для быстрого выполнения тех команд, которые используются чаще.

Работает нормально, кроме для команды выключения.

$connection = ssh2_connect('www.example.com', 22);
ssh2_auth_password($connection, 'user', 'mypass');
$stream = ssh2_exec($connection, 'netstat | grep ESTABLISHED || shutdown -P now');

Я использую этот код, так как мне нужно убедиться, что никто (мой брат) не подключен к p c перед выключением, но это выглядит так, независимо от выхода из netstat | grep ESTABLISHED код || shutdown -P now всегда выполняется.

Я всегда использовал такой код через s sh для проверки соединения, и он всегда работал нормально. как я могу выполнить || shutdown -P now часть, только если вывод netstat | grep ESTABLISHED пуст?

1 Ответ

0 голосов
/ 29 января 2020

Очевидно, ssh2_exec не может выполнить несколько команд, объединенных операторами. В вашем случае это выглядит так, будто он просто анализирует команду и выполняет последнюю. Или он просто выполняет все команды одну за другой. Что вы можете сделать, это разделить ваши команды.

Как получить результат команды ssh2_exec:

[ получить результат из ssh2_exe c

Поэтому, когда вы получите результат, вы можете обработать его и запустить еще один ssh2_command для выключения.

...