我想检索百分比处理器使用率,但没有其他命令显示大量数字。有一个解决方案使用'grep'或'awk'或类似的东西。
~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 1447984 190232 146508 4983236 0 0 0 10 0 0 2 1 97 0
我使用了vmstat命令,我只想在cpu冒号中使用'sy'号。
top command output :
[m20176 libvirt- 20 0 4368m 4,0g 3028 S 12,0 25,3 24695:44 kvm (B[m[39;49m
(B[m25320 libvirt- 20 0 3520m 3,0g 3056 S 2,7 19,2 21786:15 kvm (B[m[39;49m
(B[m 1 root 20 0 10656 624 596 S 0,0 0,0 5:46.26 init (B[m[39;49m
(B[m 2 root 20 0 0 0 0 S 0,0 0,0 0:00.12 kthreadd (B[m[39;49m
(B[m 3 root 20 0 0 0 0 S 0,0 0,0 476:10.20 ksoftirqd/0 (B[m[39;49m
(B[m 6 root rt 0 0 0 0 S 0,0 0,0 0:08.16 migration/0 (B[m[39;49m
(B[m 7 root rt 0 0 0 0 S 0,0 0,0 2:03.06 watchdog/0 (B[m[39;49m
(B[m 8 root rt 0 0 0 0 S 0,0 0,0 0:04.30 migration/1 (B[m[39;49m
(B[m 10 root 20 0 0 0 0 S 0,0 0,0 0:38.83 ksoftirqd/1 (B[m[39;49m
(B[m 12 root rt 0 0 0 0 S 0,0 0,0 1:43.93 watchdog/1 (B[m[39;49m
(B[m 13 root rt 0 0 0 0 S 0,0 0,0 0:03.41 migration/2 (B[m[39;49m
(B[m 15 root 20 0 0 0 0 S 0,0 0,0 2:42.22 ksoftirqd/2 (B[m[39;49m
(B[m 16 root rt 0 0 0 0 S 0,0 0,0 1:49.23 watchdog/2 (B[m[39;49m
(B[m 17 root rt 0 0 0 0 S 0,0 0,0 0:04.42 migration/3 (B[m[39;49m
(B[m 19 root 20 0 0 0 0 S 0,0 0,0 408:06.08 ksoftirqd/3 (B[m[39;49m
此处显示每个进程的进程使用(仅一部分)。我找到了这个命令:
`top -b -d1 -n1|grep -i "Cpu(s)"|head -c21|cut -d ' ' -f3|cut -d '%' -f1`
here。但这是启动时的CPU使用率,而非实时使用情况。
答案 0 :(得分:2)
一个简单的awk
可以帮到你(考虑到你只想打印sy列的数量)。
vmstat 1 10 | awk 'FNR>1{print $(NF-3)}'
注意: 我已使用vmstat 1 10
在服务器上执行10次vmstat
命令,然后我正在打印$(NF-3)
值是最后的第4个值。