Linux之监控服务器内存、CPU、磁盘使用率shell脚本


监控服务器内存、CPU、磁盘使用率脚本内容(包含邮件告警):

#Memory
totalMemory=$(free -m | awk -F '[ :]+' 'NR==2{print $2}')
usedMemory=$(free -m | awk -F '[ :]+' 'NR==2{print $3}')
freeMemory=$(free -m|awk  '{print $4}'|sed -n '3p')
usedPerMemory=$(awk 'BEGIN{printf "%.0f",('$usedMemory'/'$totalMemory')*100}')
freePerMemory=$(awk 'BEGIN{printf "%.0f",('$freeMemory'/'$totalMemory')*100}')
logFile=/tmp/monitor.log
#alerm date
now_time=`date '+%Y-%m%d %H:%M:%S'`
#Disk
diskusAge=$(df -h | grep /dev/mapper/centos-root | awk -F '[ %]+' '{print $5}')

#CPU
cpuusAge=$(top -b -n 1 |grep Cpu|awk '{print $8}'|cut -f 1 -d'.')

echo $cpuusAge


# send mail
function send_mail(){
        mail -s "test alerm" test@163.com < /tmp/monitor.log
}


if [[ "$usedPerMemory" > 90 ]] || [[ "$diskusAge" > 90 ]] || [[ "$cpuusAge" > 95 ]];then

                echo "报警时间:${now_time}" > $logFile
                echo "CPU usage:${cpuusAge}%" >> $logFile
                echo "Memory usage:${usedPerMemory}%" >> $logFile
                echo "Disk usage:${diskusAge}%" >> $logFile
                send_mail
fi

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM