使用Shell写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警
最近公司领导要求,要对客户那边写一个自动化的脚本,用来监控客户那边CPU使用率和硬盘空间,并通过邮件来报警。刚好参考老男孩李导最近的案例,测试了下,可以正常使用。
CPU监控:top -n 1 查看1次就退出
1 | Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st |
99.3%id 是未使用的CPU,剩余的都是使用的。
获取使用率
1 | top -n 1|awk -F ‘[, %]+‘ ‘NR==3 {print 100-$11}‘ |
知识点2:
磁盘监控先监控/
1 | df -h|awk -F ‘[ %]+‘ ‘/\/$/{print $5}‘ |
知识点3:使用bc进行含有小数的大小判断
1 2 3 4 5 6 | [root@oldboy ~]# echo "0.1>0.01"|bc1[root@oldboy ~]# echo "0.1>0.2"|bc0[root@oldboy ~]# echo "5.6>10.3"|bc0 |
具体步骤:
1. 配置/etc/mail.rc支持发邮件
1 | http://oldboy.blog.51cto.com/2561410/1706911 |
2. 脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@oldboy scripts]# cat check.sh#!/bin/bashLANG=en_US.UTF-8cpuUsed=`top -n 1|awk -F ‘[, %]+‘ ‘NR==3 {print100-$11}‘`diskUsed=$(df -h|awk -F ‘[ %]+‘ ‘/\/$/{print $5}‘)logFile=/tmp/jiankong.log function Sendmail(){ mail -s"监控报警" user@oldboyedu.com <$logFile} function check(){ if [ `echo"$cpuUsed>80"|bc` -eq 1 -o $diskUsed -ge 85 ];then echo"CPU使用率:${cpuUsed}%,磁盘使用率:${diskUsed}%">$logFile Sendmail fi} function main(){ check}main |
3. 加入定时任务,每5分钟执行一次。
本文出自 “运维技术交流” 博客,请务必保留此出处http://kouhao.blog.51cto.com/4519050/1916890
文章来自:http://kouhao.blog.51cto.com/4519050/1916890
