通过PHP“正常”获取SSH输出?

时间:2013-05-06 00:51:26

标签: php

我使用Fabric(Python)等库来在远程服务器上执行各种任务。当我通过这个库运行任务时,我会在动作发生时从远程服务器获取输出。例如,如果任务正在服务器上执行git pull,那么当它发生时我会逐行输出。

但是,当我查看各种PHP SSH库和SSH2扩展时。在一个长字符串中,似乎只有一种方法可以在命令发生之后从命令中获取所有输出。我希望在任务运行时从远程服务器返回输出。这可能吗?在伪代码中,这是我正在寻找的东西:

Server::run('git pull origin master', function($output)
{
     echo $output.PHP_EOL;
});

2 个答案:

答案 0 :(得分:10)

有这个工作。您只需在循环中使用ssh2_exec读取fgets返回的流。

答案 1 :(得分:0)

您可以在每次回音后调用flush()

http://php.net/manual/en/function.flush.php