下面的php脚本适用于简单的linux命令,比如ps -ef,但是当我使用./dstat -t -a时,它似乎挂起,我不会在我的本地机器上得到提示。请记住,所有命令都是通过远程主机上的ssh执行的:
<?php
$target = time() . '_' . 'txt';
if($ssh = ssh2_connect('10.1.0.174', 22)) {
if(ssh2_auth_password($ssh, 'root', 'kmoon77')) {
//$stream = ssh2_exec($ssh, 'whoami');
$sCommand = 'dstat -a';
//$sCommand = 'ps -ef';
$stream = ssh2_exec($ssh, $sCommand);
//$stream = ssh2_exec($ssh, 'pwd');
stream_set_blocking($stream, true);
$data = '';
while($buffer = fread($stream, 4096)) {
$data .= $buffer;
}
//fclose($stream);
echo $data; // user
}
}
?>
答案 0 :(得分:0)
感谢您发布根密码。
不,这不是内部亚马逊ip是吗?
但问题可能是脚本一直在运行(或者更确切地说是命令)。
尝试像fpassthru("ssh -i keyfile -l login name myserver.com dstat -a");
之类的东西然后你应该“看到”某些东西。