【问题标题】:Shutdown through ssh not working properly通过 ssh 关机无法正常工作
【发布时间】:2020-01-29 16:53:49
【问题描述】:

所以这是我的问题: 我有一台主要通过 ssh 使用的电脑,我最近创建了一个电报机器人来快速执行那些更频繁使用的命令。

除了关闭命令外,它工作正常。

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

我使用此代码是因为我需要在关闭电脑之前验证没有其他人(我的兄弟)连接到电脑,但看起来不管netstat | grep ESTABLISHED 的输出代码|| shutdown -P now 总是开始执行。

我总是通过 ssh 使用这样的代码来验证连接,并且它总是可以正常工作。仅当netstat | grep ESTABLISHED 的输出为空时,我如何才能执行|| shutdown -P now 部分?

【问题讨论】:

    标签: php ssh telegram-bot php-telegram-bot


    【解决方案1】:

    显然,ssh2_exec 无法执行由操作员连接的多个命令。在您的情况下,它看起来只是解析命令并执行最后一个命令。或者它只是一一执行所有命令。 你能做的就是拆分你的命令。

    如何获取ssh2_exec命令的结果:

    [get result from ssh2_exec

    所以当你得到结果时,你可以处理它并运行另一个 ssh2_command 来关闭。

    【讨论】:

    • 我现在想办法解决这个问题。我在远程机器上创建了一个带有 if 结构的 bash 文件,并从 ssh 调用它。这对我来说很好
    猜你喜欢
    • 2017-06-25
    • 1970-01-01
    • 2011-03-07
    • 2020-12-13
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多