《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]