使用php运行ssh的实时输出


Having real time output from ssh run with php

我正试图用php编写一个本质上是交互式ssh系统的东西,我需要让php用ssh_exec或shell在远程服务器上执行命令,并实时收集命令的输出。

我一直在处理输出缓冲和flush(),直到我脸色发青,即将让命令将其输出重定向到文件,并有一个单独的脚本,该脚本使用sftp轮询该文件的内容,并使用jquery更新页面上的输出div。

就在我走这条冗长的路线之前,有人有一个使用单个脚本的解决方案吗?

谢谢!

没有这样的东西可以用一个脚本可靠地工作:你对服务器端的缓冲几乎没有控制权——flush()可能会或可能不会按预期工作,这取决于你是使用mod_phpCGIFCGI还是其他什么,而你对客户端的缓冲完全没有控制权(IE在这里很臭名昭著)。

去过那里,做到了,用AJAX做到了。

下面这样的东西会不起作用吗?

$output = shell_exec($theScript);
file_put_contents($someFile, $output, FILE_APPEND);

或者我是不是搞错了?