我使用Fabric(Python)等库来在远程服务器上执行各种任务。当我通过这个库运行任务时,我会在动作发生时从远程服务器获取输出。例如,如果任务正在服务器上执行git pull
,那么当它发生时我会逐行输出。
但是,当我查看各种PHP SSH库和SSH2扩展时。在一个长字符串中,似乎只有一种方法可以在命令发生之后从命令中获取所有输出。我希望在任务运行时从远程服务器返回输出。这可能吗?在伪代码中,这是我正在寻找的东西:
Server::run('git pull origin master', function($output)
{
echo $output.PHP_EOL;
});
答案 0 :(得分:10)
有这个工作。您只需在循环中使用ssh2_exec
读取fgets
返回的流。
答案 1 :(得分:0)
您可以在每次回音后调用flush()