【问题标题】:PHP CLI recording output from interactive SSH sessionPHP CLI 记录交互式 SSH 会话的输出
【发布时间】:2011-06-30 07:37:16
【问题描述】:

我一直在尝试通过 PHP CLI 脚本整理记录交互式 SSH 会话。我真正想要的只是有点像 tee 命令,将整个输出记录到一个字符串中。

我已经尝试了大多数命令来执行外部进程以使其工作。它们要么工作正常,例如 passthrupcntl_exec,但不让我将输出记录到字符串或数组中,或者它们不向我的终端显示任何输出但仍然接受来自 STDIN 的内容。

我想知道是否有一种方法可以进行交互式 ssh 会话,即正常工作,但实际上会记录输出以在 PHP 中使用。

谢谢

【问题讨论】:

  • 我无法理解您的问题。您能否添加一些您迄今为止尝试过的示例命令,即使它不起作用?

标签: ssh php


【解决方案1】:
<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n");
echo $ssh->read('username@username:~$');
?>

你可以这样做。

【讨论】:

    【解决方案2】:

    它们要么工作正常,例如 passthru 和 pcntl_exec 但不要让我记录 输出到字符串或数组中

    好吧,您可以使用 hack 来获取该字符串:

    ob_start();
    passthru('Your command here');
    $result=ob_get_clean();
    

    这很糟糕,但如果您的服务器不是高负载 - 它应该可以工作。

    【讨论】:

      【解决方案3】:

      尝试使用 ObserveIT,它包含强大的 SSH 和 Telnet 记录器,高级用户无法停止

      【讨论】:

        猜你喜欢
        • 2016-03-28
        • 1970-01-01
        • 2011-05-05
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 2016-04-16
        相关资源
        最近更新 更多