監控cpu內存磁盤,並實現郵件報警
阿新 • • 發佈:2019-03-28
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 ] 20then 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內存磁盤,並實現郵件報警