我已经使用像Fabric (Python)这样的库在远程服务器上执行各种任务。当我通过这个库运行任务时,当操作发生时,我从远程服务器获得输出。例如,如果任务在服务器上执行一个git pull
,我就会得到它的逐行输出。
然而,当我看到各种PHP SSH库和SSH2扩展。似乎只有一种方法可以在已经发生后从命令中获得所有输出,在一个长字符串中。我希望在任务运行时从远程服务器得到反馈输出。这可能吗?在伪代码中,这就是我要找的:
Server::run('git pull origin master', function($output)
{
echo $output.PHP_EOL;
});
开始工作了。您可以在循环中使用fgets
读取ssh2_exec
返回的流。
可以在每次echo后调用flush()