#!/bin/bash
NC=$(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}')) #查看CPU状态并提取出百分比数值
CP=$(df -h |grep "/$" |awk '{print $5}'|awk -F% '{print $1}') #查看磁盘状态并提取百分比
GJ="gaojing.txt" #定义一个告警的文件
GJmail="1732628551@qq.com" #定义告警需要发送的邮箱
if [ $NC -gt 90 ];then #判断内存是否大于等于百分之90,是就存到告警文件中
echo "内存使用率:$NC% >> $GJ"
fi
if [ $CPU -gt 80 ];then #同理CPU超80就存到告警文件
echo "cpu使用率:$CPU >> $GJ"
fi
if [ $CP -gt 90 ];then #磁盘超过90就存到告警文件
echo "根分区磁盘占用率:$CP >> $GJ"
fi
if [ -f $GJ ];then
cat $GJ | mail -s "警告" $GJmail
rm -rf $GJ
fi
chmod 777 /root/sysmon.sh
echo "*/30 * * * * /root/sysmon.sh" >> /var/spool/cron/root #写一个周期任务每30分钟执行一次脚本监控
关于shell脚本之——监控脚本
最新推荐文章于 2024-04-17 13:56:44 发布