1. 程式人生 > >監控cpu內存磁盤,並實現郵件報警

監控cpu內存磁盤,並實現郵件報警

div pan spa .com gre disk warn tmp 郵件報警

 1 #!/bin/bash
 2 #獲取當前時間
 3 now=`date -u -d"+8 hour" +%Y-%m-%d %H:%M:%S`
 4 #cpu使用閾值
 5 cpu_warn=5
 6 #mem空閑閾值
 7 mem_warn=1
 8 #disk使用閾值
 9 disk_warn=5
10 #獲取主機IP,下條命令也可以獲取
11 hostip=$(ip addr | awk /^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)})
12 #hostip=`ifconfig
|grep 192.168.xx.xx|awk {print $2}|cut -d" " -f1` 13 #email,多個郵箱用逗號隔開 14 email_sender=([email protected]) 15 16 #---cpu 17 item_cpu () { 18 cpu_idle=`top -n 1 -b | sed -e s/ //g | grep "Cpu(s):" | awk -F ":" {print $2} | awk -F "," {print $1}|sed -e s/us//g` 19 if [ $cpu_use -gt $cpu_warn ] 20
then 21 echo "$now $hostip 當前cpu使用率為$cpu_idle%,請及時處理" | mail -s cpu預警 ${email_sender} 22 else 23 echo "$now $hostip 當前cpu使用率為$cpu_idle%,未超過閾值" >> /opt/cpu.log 24 fi 25 } 26 27 #---mem 28 item_mem () { 29 #MB為單位 30 mem_free=`free -m | grep "Mem" | awk {print $4+$6}
` 31 if [ $mem_free -lt $mem_warn ] 32 then 33 echo "$now $hostip 當前內存剩余空間為${mem_free}MB,請及時處理" | mail -s 內存預警 ${email_sender} 34 else 35 echo "$now $hostip 當前內存剩余空間為${mem_free}MB,未超過閾值" >> /opt/mem.log 36 fi 37 } 38 39 #---disk 40 item_disk () { 41 disk_use=`df -P | grep /dev | grep -v -E (tmp|boot) | awk {print $5} | cut -f 1 -d "%"` 42 if [ $disk_use -gt $disk_warn ] 43 then 44 echo "$now $hostip 磁盤使用率超過閾值,當前使用率為$disk_use%,請及時處理" | mail -s 磁盤預警 ${email_sender} 45 else 46 echo "$now $hostip 磁盤使用率未過閾值,當前使用率為$disk_use%,未超過閾值" >> /opt/disk.log 47 fi 48 } 49 50 item_cpu 51 item_mem 52 item_disk

取值命令可以根據需要自己修改

監控cpu內存磁盤,並實現郵件報警