脚本提取cpu运行信息,使用率超过30%输出警告。
#!/bin/bash
r=1
while [ $r -eq 1 ]; do
cpuinfo=$(vmstat | tail -1|awk '{print $13 " " $14 " " $15 " " $16}')
us=$(echo $cpuinfo | awk '{print $1}')
sy=$(echo $cpuinfo | awk '{print $2}')
id=$(echo $cpuinfo | awk '{print $3}')
wa=$(echo $cpuinfo | awk '{print $4}')
t=$(date +%F" "%H:%M:%S)
let total=us+sy
if [ $total -ge 30 ]; then
echo $t " cpu alert:"$total >> ./cpualert.log
fi
echo $t " us:"$us " sy:"$sy " id:"$id " wa:"$wa >> cpuinfo.log
sleep 10
done
总结说明:
1.脚本执行后循环往复执行,间隔10秒
2.非报警信息和报警信息分别存储
3.需要利用vmstat获取cpu信息,脚本未做软件安装包检测。(稍后单独编写这一功能)
4.vmstat关于cpu输出说明如下:
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间