Board logo

标题: linux实战(十一)----shell监控服务器性能---综合运用 [打印本页]

作者: look_w    时间: 2019-5-11 13:55     标题: linux实战(十一)----shell监控服务器性能---综合运用

相关命令脚本学习
获取CPU负载信息

function GetSysCPU   
{   
  CpuIdle=`vmstat 1 5 |sed -n '3,$p'|awk '{x = x + $15} END {print x/5}' |awk -F. '{print $1}'`  
  CpuNum=`echo "100-$CpuIdle" | bc`   
  echo $CpuNum   
}  


vmstat 用来显示虚拟内存的信息
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
vmstat   1   5  
表示每1秒刷新一次,取5次
sed -n '3,$p '   
-n表示只打印选中的行,地址是一个数字,则表示行号;
“$"符号,表示最后一行。 '3,$'表示 第3行到最后一行,p是命令表示打印输出。

awk '{x = x + $15} END {print x/5}'
表示将每行的 第15列相加后 除以5求平均

awk -F. '{print $1}'
用.来分隔取第1列  也就是对平均数 取整的意思

CpuIdle=`vmstat 1 5 |sed -n '3,$p'|awk '{x = x + $15} END {print x/5}' |awk -F. '{print $1}'`

意思是  在vmstat 中 计算出 5秒内的CPU空闲时间平均数


CpuNum=`echo "100-$CpuIdle" | bc`

用100减去空闲时间百分比平均数 则得到  CPU的使用情况。


也就是我们求的CPU负载信息。




获取内存信息


function GetSysMem
{   
  Mem=`free -m | grep Mem | awk '{print $4}'`  
  echo $Mem  
}

使用free命令查看linux系统内存使用情况:(以M为单位)

# free -m  
             total       used       free     shared    buffers     cached
Mem:          3952       3414        538          0        168        484
-/+ buffers/cache:       2760       1191
Swap:         8191         86       8105




free -m | grep Mem | awk '{print $4} 获取剩余内存

grep Mem: 选出含有Mem的行

awk '{print $4}'   以空白作分隔,取第四列,这里对应到 free,也就是获取剩余内存。



获取交换空间信息

function GetSysSwap
{   
  swap_free=`free -m | grep Swap | awk '{print  $4}'`  
  echo $swap_free  
}


free -m | grep Swap | awk '{print  $4} 获取剩余当前剩余的交换分区free大小  

grep Swap : 选出含有Swap 的行

awk '{print $4}'   以空白作分隔,取第四列,这里对应到 free,也就是获取剩余Swap 。




获取磁盘空间信息

function GetSysSpace
{   

  SPACE=`df| grep -v  Use  | gawk  '{x = x + $5} END {print x}' | sed  's/%//'`
  echo $SPACE
}



df| grep -v  Use  | gawk  '{x = x + $5} END {print x}' | sed  's/%//'

df是查询磁盘使用情况的命令

grep -v Use 去掉含有Use字符串的这一行

sed  's/%//'    s就是替换符,这里表示匹配到后面含有%号的字符串取%号前面的值(也就是s位置的值)

gawk  '{x = x + $5} END {print x}'      用空白分隔后取每一行的第5列 相加 得到最后值

也就是 磁盘空间的总使用百分比。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0