能实现实时系统监控,当检测到情况后,每隔2小时在发送一封信件给SA
###Define the safe number###
maxcpu=0
maxdisk=10
maxload=0
diskold=0
cpuold=0
loadold=0
#####################################
if [ -d mdisk ]
then
rm -rf /root/mdisk
fi
mkdir /root/mdisk
while [ 1 ]
do
flag=0
top -b1 -n1 > /root/mdisk/top.info
m=`date +%m-%d:%H:%M`
log=/root/mdisk/diskinfo.txt
IP=`/sbin/ifconfig | grep inet | awk '{print $2 }' | awk -F ":" '{print $2}'`
df -h | sed 's/ /1/' | awk {'print $5$6'} > $log
max=$(awk -F"%" '{print $1}' /root/mdisk/diskinfo.txt | sort -n | tail -1)
if [ $diskold -eq 0 ] ;then
echo "以有超过$maxdisk%的分区使用量,具体如下:" >/root/mdisk/alarm.log
echo "`df -h`" >> /root/mdisk/alarm.log
echo "---------------------------------------------------->" >> /root/mdisk/alarm.log
echo "" >> /root/mdisk/alarm.log
echo "" >> /root/mdisk/alarm.log
flag=1
diskold=$(date +%s)
else
if [ $((diskold + 7200)) -le $(date +%s) ] ;then
flag=1
diskold=$(date +%s)
fi
fi
else
diskold=0
fi
###Check the CPU####################################
cpuinfonumber=` echo $cpuinfo |awk -F "%" '{print $1}'|awk -F "." '{print $1}'`
if [ $cpuold -eq 0 ] ;then
echo "在$m时CPU占用率达到$cpuinfo,具体如下:" >>/root/mdisk/alarm.log
echo ` top b1 n1 | grep Cpu` >> /root/mdisk/alarm.log
echo "---------------------------------------------------->" >> /root/mdisk/alarm.log
echo "" >> /root/mdisk/alarm.log
echo "" >> /root/mdisk/alarm.log
flag=1
cpuold=$(date +%s)
else
if [ $((cpuold + 7200)) -le $(date +%s) ] ;then
flag=1
cpuold=$(date +%s)
fi
fi
else
cpuold=0
fi
####################################################
########Check the load average###################################
loadavg=`grep "load average:" /root/mdisk/top.info |sed 's/.*load average: //'|awk -F "," '{print $(NF-2)}'`
#loadavgnumber=`grep "load average:" top.info |sed 's/.*load average: //'|awk -F "," '{print $(NF-2)}'|awk -F "." '{print $1}'`
if [ ${loadavgnumber} -ge ${maxload} ] ;then
if [ $loadold -eq 0 ] ;then
echo "5分钟之前系统负载为$loadavg%" >> /root/mdisk/alarm.log
echo `top b1 n1 | grep load` >> /root/mdisk/alarm.log
echo "---------------------------------------------------->" >> /root/mdisk/alarm.log
flag=1
loadold=$(date +%s)
else
if [ $((loadold + 7200)) -le $(date +%s) ] ;then
flag=1
loadold=$(date +%s)
fi
fi
else
loadold=0
fi
done