目录
性能指标监控与通知
linux系统性能指标监控与通知shell开发自动化脚本
本篇文章主要讲解linux操作系统的性能指标监控与通知,并利用shell开发自动化脚本
系统的性能指标监控室比较常见的针对系统的管理场景,比如系统有挖矿程序,或者系统本身存在高CPU进程(正常应用),除了CPU以外,也可以监控内存,硬盘,网络流量等使用情况。通过监控和发送通知,可以及时对系统的运行情况进行把控,进而实现正确的处置。如果发现某些异常CPU消耗,甚至可以直接结束掉进程。
(1)通过相应的命令能够输出需要的指标
(2)通过awk对输出结果进行过滤,找到对应的值
(3)根据对应的值进行判断,进而决定后续处理方式
一、使用yes程序监控CPU
1.通过总cpu来测试
top -n 1 #查看cpu使用情况 top -n 1 | grep ^%Cpu #找到以%Cpu开头的行 top -n 1 | grep ^%Cpu | awk '{print int($8)}' #在以%Cpu开头的行中筛选出cpu的使用情况 cpu=$(top -n 1 | grep ^%Cpu | awk '{print int($8)}') #将筛选出的结果赋值给cpu这个变量,注意,这里需要将$8这个变量的值转为整数,通过 int() 这是一种方法,还有一种方法是 再次使用 awk ,演示如下: `cpu=$(top -n 1 | grep ^%Cpu | awk '{print int$8}' | awk -F . '{print $1}')` [ $cpu -lt 85 ] echo $? #两条命令判断结果是不是小于85
2.通过cpu的进程消耗测试
top -n 1 | sort -k 9 -r #按 `top -n 1` 中第9栏的结果降序排列,最终得到的最小号的进程就在最上面 或 ps aux | sort -k 3 -r #和上面的意思差不多,也是降序排列,第一行的就是cpu进程消耗最高的 ps aux | sort -k 3 -r | head -n 2 | tail -n 1 #这个结果就是将上面的cpu进程消耗最高的过滤出来 ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $3}' #打印出cpu的最消耗的进程率 ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $2}' #打印出最消耗cpu的进程id pcpu=`ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $3}'` echo $pcpu / 4 | bc #两条命令计算出真正的cpu使用率,因为总的cpu使用