php exec没有返回完整输出

时间:2014-10-16 18:02:13

标签: php

我正在用php的exec执行一堆ssh命令。所有这些似乎都正常工作,除了其中一个:

$command = 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@127.0.0.1 "verify /md5 filename"';
exec($command, $output);

如果这些命令有所不同,这些命令将在Cisco路由器上执行。

输出完成约99%,但最后会被切断。我根本没有收到最后一行,第二行到最后一行总是在第一个字符后被切断。我也试过了passtru并得到了相同的结果。

我还尝试在命令的末尾添加2>& 1,但没有任何区别。有谁知道这里发生了什么或有任何想法?

以下是最后两行。这就是我的期望:

..........Done!
verify /md5 (flash:filename) = 8743b52063cd84097a65d1633f5c74f5

我得到了

.

此外,在命令行上运行此功能非常有效。我见过其他类似问题,但实际上并没有任何解决方案。这是在php 5.3.3上。

我还有一些信息要添加到此。我创建了一个单独的脚本,只调用了exec和this命令并获得了相同的输出。这排除了我的文件或我正在使用的框架中的任何其他内容。

我还从命令行运行了新脚本,它运行得很好。然而,在浏览器中运行脚本会返回错误的结果。

我可以验证它与数据的返回方式和点数有关。 ......必须以PHP不喜欢的方式加载,并认为命令已完成。

0 个答案:

没有答案