通过PHP"正常"获取SSH输出?

Tay*_*ell 10 php

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

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

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

Tay*_*ell 10

有这个工作.您只需读取循环ssh2_exec使用返回的流即可fgets.