基于vmstat命令实现

[root@logstash ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3429808   2124 237352    0    0    10     1   65   96  0  0 100  0  0
[root@logstash ~]#

server_source_cpu.sh

#!/bin/bash

function cpu()
{
   util=$(vmstat | awk '{if(NR==3) print 100-$15"%"}')
   user=$(vmstat | awk '{if(NR==3) print $13"%"}')
   sys=$(vmstat | awk '{if(NR==3) print $14"%"}')
   iowait=$(vmstat | awk '{if(NR==3) print $16"%"}')
   echo "CPU - 使用率是:$util,等待磁盘IO响应使用率:$iowait"
}
cpu

验证:

[root@logstash ~]# sh server_source_cpu.sh 
CPU - 使用率是:0%,等待磁盘IO响应使用率:0%
[root@logstash ~]#