吸毒的虫子 发表于 2018-8-26 11:24:05

《shell脚本系统监控-------邮件告警》

#/bin/bash             ----默认执行方式  

  
#以下为变量:
  

  
HOST=`hostname`      ---输出当前系统的机器名
  
SYS=`uname -a`         ---输出当前系统信息
  
DATE=`date "+%F %H:%M:%S"`       ---输出当前系统时间
  
WEB=/var/www/html/$HOST.html      ---创建当前系统的网站的网页(以该脚本命名)
  
CPU=`cat /proc/cpuinfo |grep processor | wc -l`    ---输出当前系统的CPU信息(作为判断信息)
  
ID=`vmstat | awk 'NR==3{print $15 }'`      ----输出当前系统CPU的IP号码
  
WA=`vmstat | awk 'NR==3{print $16 }'`      ---输出系统的I/O的等待百分比
  
LOAD=`w | awk 'NR==1{print $8}' |awk -F "," '{print $1}'`       ---输出系统的负载值
  
DISK=`df -h |awk 'NR==3{print $4}' |awk -F "%" '{print $1}'`    ---输出硬盘的已经使用值
  
FREE=`free -m | awk 'NR==2{print $4}'`      ----输出内存空闲值
  
CACHE=`free -m | awk 'NR==2{print $7}'`       ----输出内存缓存值
  
TCP=`netstat -atunlp`            ----输出当前系统的网络链接状态
  
IF=`iftop -i eth0 -P -Nn -L 100 -s 1 -t >>$WEB`      ---输出系统的eth0接口的状态
  

  

  

  
#以下是执行上面所做的变量的输出
  
#在这里对cpu的线程数,CPU的LOAD,系统磁盘的状态,内存剩余。这四个做一个邮件的告警
  

  
echo "design for leoheng"
  

  
echo "######---主机名---##########"
  
echo hostname=`echo $HOST`
  

  

  
echo "######---系统参数---########"
  
echo system=`echo $SYS`
  

  

  
echo "######---CPU线程数---#######"
  
echo processor=`echo $CPU`
  
if [ $CPU -eq 4 ];then
  
`echo "wa=$WA and id=$ID cpu processor is ok" | mail -s "$HOST CPU" xxxxxxxx@qq.com`
  
else
  
`echo "wa=$WA and id=$ID cpu processor have problem" | mail -s "$HOST CPU" xxxxxxxx@qq.com`
  
fi
  

  

  
echo "######---CPU的ID---#########"
  
echo cpu~id=`echo $ID`
  

  

  
echo "######---CPU的WA---#########"
  
echo cpu~wa=`echo $WA`
  

  

  
echo "######---CPU的LOAD---#######"
  
echo cpu-load=`echo $LOAD`
  
if [ $LOAD > 0.05 ];then
  
`echo "CPU-LOAD is beyond the rate" | mail -s "CPU-LOAD" xxxxxxxx@qq.com`
  
else
  
`echo "CPU-LOAD is ok" | mail -s "CPU-LOAD" xxxxxxxx@qq.com`
  
fi
  

  

  

  
echo "######---系统磁盘的状态---##"
  
echo disk-status=`echo $DISK`
  
if [ $DISK > 80 ];then
  
`echo "SYSTEM-DISK is beyond the 80%" | mail -s "SYSTEM-DISK" xxxxxxxx@qq.com`
  
else
  
`echo "SYSTEM-DISK is ok" | mail -s "SYSTEM-DISK" xxxxxxxx@qq.com`
  
fi
  

  

  

  
echo "######---内存剩余---########"
  
echo memory=`echo ($FREE+$CACHE) KB`
  
   memory=$(($FREE+$CACHE))
  
echo $memory
  
if [ $memory < 1000 ];then
  
`echo "SYSTEM-memory less than 1000M " | mail -s "SYSTEM-memory" xxxxxxxx@qq.com`
  
      else
  
                `echo "SYSTEM-memory is ok" | mail -s "SYSTEM-memory" xxxxxxxx@qq.com`
  
      fi
  

  

  

  
echo "######---TCP相关连接状态----#"
  
echo tcp-status=`echo $TCP`
  

  

  

  
echo "######---eth0的流量---######"
  
echo $IF
  

  

  
echo "END"


页: [1]
查看完整版本: 《shell脚本系统监控-------邮件告警》