我想通过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。
答案 0 :(得分:8)
谢谢大家,但我做到了。 我做了这个命令:
top -b -n 10 -d.2 | grep 'Cpu' | awk 'NR==3{ print($2)}'
答案 1 :(得分:0)
你可以使用
top -n 1
mpstat
iostat
答案 2 :(得分:0)
phpseclib, a pure PHP SSH implementation,有一个非常好的讨论如何top in PHP用它:
http://phpseclib.sourceforge.net/ssh/pty.html#top
即。你需要一个PTY。
$ssh->enablePTY();
$ssh->exec('top');
$ssh->setTimeout(5);
$ansi->appendString($ssh->read());
echo $ansi->getScreen();
您也可以使用交互模式:
$ansi->appendString($ssh->read('username@username:~$'));
$ssh->write("top\n");
$ssh->setTimeout(5);
$ansi->appendString($ssh->read());
echo $ansi->getScreen();
请注意,输出将具有ANSI转义码。以下是ANSI转义码呈现为HTML时的示例:
答案 3 :(得分:0)
更好的方法是只安装一目了然。
sudo apt install glances
然后只需运行glances
。然后,您的输出将如下所示。您可以更改更新速度。
$yourhostname - IP x.x.x.x/x Pub xx.xxx.xxx.xxx Uptime: 0:41:24
CPU [ 1.4%] CPU - 1.4% MEM - 10.8% SWAP - 0.0% LOAD 12-core
MEM [ 10.7%] user: 1.0% total: 31.4G total: 2.00G 1 min: 0.71
SWAP [ 0.0%] system: 0.4% used: 3.38G used: 0 5 min: 0.73
idle: 98.5% free: 28.0G free: 2.00G 15 min: 0.69
NETWORK Rx/s Tx/s TASKS 322 (1136 thr), 1 run, 235 slp, 86 oth
eno1 0b 0b
lo 2Kb 2Kb Systemd 6 Services loaded: 190 active: 190
_xxxxxxxx 0b 4Kb
CPU% MEM% PID USER NI S Command
DefaultGateway 62ms 4.2 0.9 1923 xxx 0 S cinnamon --replace
2.9 0.1 9055 xxx 0 R /usr/bin/python3 /
DISK I/O R/s W/s 1.9 0.5 1323 root 0 S /usr/lib/xorg/Xorg
disk1 0 91K 1.3 0.0 1338 root 0 S irq/74-nvidia
partition1 0 0 1.3 0.1 8586 xxx 0 S /usr/lib/gnome-ter
partition2 0 91K 1.0 0.4 8907 xxx 0 S /opt/google/chrome
sda1 0 0 0.6 1.0 5381 xxx 0 S /home/xxx/Programs
sdc1 0 0 0.3 0.5 2102 xxx 0 S /opt/google/chrome
0.3 0.4 2689 xxx 0 S /opt/google/chrome
FILE SYS Used Total 0.3 0.6 4831 xxx 0 S /home/xxx/Programs
/ 15.6G 228G
2019-02-13 05:39:04 No warning or critical alert detected