我想通过SSH检索CPU利用率百分比,我已经尝试了命令“top”,但它不允许。
我使用的是CentOS 6。
我试过这个密码
$connection = ssh2_connect("IP", PORT);
ssh2_auth_password($connection, "root", "PASS");
$stream = ssh2_exec($connection, "top");
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
// Enable blocking for both streams
stream_set_blocking($errorStream, true);
stream_set_blocking($stream, true);
// Whichever of the two below commands is listed first will receive its appropriate output. The second command receives nothing
echo "Output: " . stream_get_contents($stream);
echo "Error: " . stream_get_contents($errorStream);
// Close the streams
fclose($errorStream);
fclose($stream);
但李世民每次都给予我一个错误:输出:错误:未设置TERM环境变量。
我用的是PHP。
5条答案
按热度按时间zhte4eai1#
谢谢大家,但我管理。我做了这个命令:
piv4azn72#
您可以使用
jucafojl3#
更好的方法是简单地安装扫视。
然后简单地运行
glances
。然后您的输出将如下所示。您可以更改更新速度。fcy6dtqo4#
phpseclib, a pure PHP SSH implementation,有一个关于如何用它在PHP中做top的漂亮讨论:
http://phpseclib.sourceforge.net/ssh/pty.html#top
你需要一个PTY。
您也可以在交互模式下执行此操作:
请注意,输出将包含ANSI转义码。下面是一个将ANSI转义码转换为HTML的示例:
http://phpseclib.sourceforge.net/ssh/examples.html#top
z3yyvxxp5#
top
表示当前时刻的CPU负载,因此当存在不连续使用CPU的进程时,可能会产生误导。0.0
,对于负载系统,它将是0.5
,1.5
及以上。当启动重任务时-它将立即跳到0.1
以上。为了等待空闲系统,我用途: