监控cpu内存磁盘,并实现邮件报警
Posted mliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控cpu内存磁盘,并实现邮件报警相关的知识,希望对你有一定的参考价值。
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内存磁盘,并实现邮件报警的主要内容,如果未能解决你的问题,请参考以下文章