编写逻辑
提取性能监控指标项目(磁盘占用,CPU使用,内存使用),当硬件占用率到达一定程度自动发送警报邮件。
(详细过程同前面博文《Shell条件语句》)
脚本
#!/bin/bash
# 硬件巡检,对cpu、内存、磁盘超过阈值报警
disk=$(df -Th | grep "/$" | awk '{print $6}' | awk -F% '{print $1}')
mem=$(expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}'))
cpu=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))
alert_file=/root/alert.txt
mailbox=123456789@qq.com
if [ $disk -ge 85 ]
then echo "磁盘占有率超过85%" >> $alert_file
fi
if [ $mem -ge 90 ]
then echo "内存占有率超过90%" >> $alert_file
fi
if [ $cpu -ge 90 ]
then echo "cpu占有率超过90%" >> $alert_file
fi
if [ -f $alert_file ]
then
cat $alert_file | mail -s "alert report" $mailbox
rm -rf $alert_file
fi
检验方法
可以将脚本中占用率编写为较小的数字,尝试运行脚本,查看邮箱是否收到警报邮件。