利用shell監控cpu、磁盤、內存使用率,達到警報閾值發郵件進行通知shell
並配合任務計劃,便可及時獲取報警信息bash
#!/bin/bash ############################################## #Author: Liuzhengwei - 1135960569@qq.com #QQ:1135960569 #Last modified: 2017-04-19 21:50 #Filename: jiankong.sh #Description: ############################################## #獲取cpu使用率 cpuUsage=`top -n 1 | awk -F ‘[ %]+‘ ‘NR==3 {print $2}‘` #獲取磁盤使用率 data_name="/dev/vda1" diskUsage=`df -h | grep $data_name | awk -F ‘[ %]+‘ ‘{print $5}‘` logFile=/tmp/jiankong.log #獲取內存狀況 mem_total=`free -m | awk -F ‘[ :]+‘ ‘NR==2{print $2}‘` mem_used=`free -m | awk -F ‘[ :]+‘ ‘NR==3{print $3}‘` #統計內存使用率 mem_used_persent=`awk ‘BEGIN{printf "%.0f\n",(‘$mem_used‘/‘$mem_total‘)*100}‘` #獲取報警時間 now_time=`date ‘+%F %T‘` function send_mail(){ mail -s "監控報警" 1135960569@qq.com < /tmp/jiankong.log } function check(){ if [[ "$cpuUsage" > 80 ]] || [[ "$diskUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then echo "報警時間:${now_time}" > $logFile echo "CPU使用率:${cpuUsage}% --> 磁盤使用率:${diskUsage}% --> 內存使用率:${mem_used_persent}%" >> $logFile send_mail fi } function main(){ check } main