#!/bin/bash
#System Monitoring Script
while [ 1 ]
do
#本机需开启postfix或sendmail服务。
#报警邮件地址设置
MAILTO=ytyxjk@163.com
#设置脚本运行间隔时间。单位(秒)。
RUNTIME=3600
#内存使用率监控设置,单位 (%)
MEMTHRE=85
#流量监控设置
#要监控的网卡
ETHX=eth0
#填写大于多少MB的时候发送警报,单位(MB)
INFLOWTHREMB=50
OUTFLOWTHREMB=50
#填写大于多少KB的时候发送警报,单位(KB)
INFLOWTHREKB=8000
OUTFLOWTHREKB=8000
#TCP连接状态数量监控设置
#填写最大连接的个数
TIME_WAIT=4000
FIN_WAIT1=500
FIN_WAIT2=200
ESTABLISHED=4000
SYN_RECV=100
CLOSE_WAIT=100
CLOSING=1000
LAST_ACK=3000
#CPU使用率监控设置
#填写cpu使用率大于多少发送报警,单位(%)
CPUTHRE=80
#硬盘使用大小设置
#填写硬盘占用率,单位(%)
ROOT=80
BOOT=80
#HOME=80
#调试模式开关。(YES/NO)
DBUG=NO
# 监 控 脚 本 执 行 内 容
################################################################################
time=`date +"%Y-%m-%d %H:%M:%S"`
#内存监控部分
NULL=/dev/null
MEM=`free -m |grep Mem |awk '{print $3/$2*100}'`
MEMB=`free -m |grep Mem |awk '{print $2,$4+$6+$7}'|awk '{print $1,$1-$2}'| awk '{print $2/$1*100}'`
memuse=`free -m|grep "buffers/cache"|awk '{print $3}'`
memtotal=`free -m|grep "Mem"|awk '{print $2}'`
memory=`echo "$memuse/$memtotal*100"|bc -l|cut -d. -f1`
MA=`expr $memory \> $MEMTHRE `
if [ $MA -eq 1 ] ; then
echo $time MEM内存警告,当前内存占用率为$MEM %,大于$MEMTHRE %. | mail -s '9.20-1.MEM warning' $MAILTO
fi
MB=`expr $MEMB \> $MEMTHRE`
if [ $MB -eq 1 ] ; then
echo $time MEMB内存警告,当前内存占用率为$MEMB %,大于$MEMTHRE % | mail -s '9.20-2.MEMB warning' $MAILTO
fi
sleep 1
#流量监控部分
FLOWA=/tmp/.flow
ifconfig $ETHX |grep "RX byte" |awk '{print $2" "$6}' |awk -Fbytes: '{print "INPUT "$2"OUTPUT "$3}'\ > $FLOWA
INPUTA=`cat $FLOWA |awk '{print $2}'`
OUTPUTA=`cat $FLOWA |awk '{print $4}'`
sleep 1
ifconfig $ETHX |grep "RX byte" |awk '{print $2" "$6}' |awk -Fbytes: '{print "INPUT "$2"OUTPUT "$3}'\ > $FLOWA
INPUTB=`cat $FLOWA |awk '{print $2}'`
OUTPUTB=`cat $FLOWA |awk '{print $4}'`
INPUTC=`echo "$INPUTB-$INPUTA" | bc`
OUTPUTC=`echo "$OUTPUTB-$OUTPUTA"| bc`
INPUTMBA=`echo "$INPUTC/1024"| bc`
OUTPUTMBA=`echo "$OUTPUTC/1024"| bc`
INMBF=/tmp/.inputMB
OUTMBF=/tmp/.outputMB
echo `echo "scale=2;$INPUTMBA/1024"| bc` MB > $INMBF
echo `echo "scale=2;$OUTPUTMBA/1024"| bc` MB > $OUTMBF
INMB=`cat $INMBF |awk '{print $1}'`
OUTMB=`cat $OUTMBF |awk '{print $1}'`
#if [ $INPUTMBA -gt 1024] ; then
#if [ $INMB -gt $INFLOWTHREMB] ;then
#echo $time 流量警告,in当前速率$INMB MB/秒,大于$INFLOWTHREMB MB/秒 | mail -s '9.20-3.in mb warning' $MAILTO
#fi
#if [ $OUTMB -gt $OUTFLOWTHREMB] ;then
#echo $time 流量警告,out当前速率$OUTMB MB/秒 大于$OUTFLOWTHREMB MB/秒 | mail -s '9.20-4.out mb warning' $MAILTO
#fi
#else
INKBF=/tmp/.inputKB
OUTKBF=/tmp/.outputKB
echo $INPUTMBA KB > $INKBF
echo $OUTPUTMBA KB > $OUTKBF
INKB=`cat $INKBF |awk '{print $1}'`
OUTKB=`cat $OUTKBF |awk '{print $1}'`
if [ $INKB -gt $INFLOWTHREKB ] ; then
echo $time 流量警告,in当前速率$INKB KB/秒 大于$INFLOWTHREKB KB/秒 | mail -s '9.20-5.in kb warning' $MAILTO
fi
if [ $OUTKB -gt $OUTFLOWTHREKB ] ;then
echo $time 流量警告,out当前速率$OUTKB KB/秒大于$INFLOWTHREKB KB/秒 | mail -s '9.20-6.out kb warning' $MAILTO
fi
#fi
sleep 1
#连接数
tcpfile=/tmp/.tcp
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' >$tcpfile
grep TIME_WAIT $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "TIME_WAIT 0 " >> $tcpfile
fi
grep FIN_WAIT1 $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "FIN_WAIT1 0 " >> $tcpfile
fi
grep FIN_WAIT2 $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "FIN_WAIT2 0 " >> $tcpfile
fi
grep CLOSE_WAIT $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "CLOSE_WAIT 0 " >> $tcpfile
fi
grep LAST_ACK $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "LAST_ACK 0 " >> $tcpfile
fi
grep SYN_RECV $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "SYN_RECV 0 " >> $tcpfile
fi
grep CLOSING $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "CLOSING 0 " >> $tcpfile
fi
grep ESTABLISHED $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "ESTABLISHED 0 " >> $tcpfile
fi
TIME_WAITV=`grep TIME_WAIT $tcpfile | awk '{print $2}'`
FIN_WAIT1V=`grep FIN_WAIT1 $tcpfile | awk '{print $2}'`
FIN_WAIT2V=`grep FIN_WAIT2 $tcpfile | awk '{print $2}'`
ESTABLISHEDV=`grep ESTABLISHED $tcpfile | awk '{print $2}'`
SYN_RECVV=`grep SYN_RECV $tcpfile | awk '{print $2}'`
CLOSINGV=`grep CLOSING $tcpfile | awk '{print $2}'`
CLOSE_WAITV=`grep CLOSE_WAIT $tcpfile | awk '{print $2}'`
LAST_ACKV=`grep LAST_ACK $tcpfile | awk '{print $2}'`
if [ $ESTABLISHEDV -gt $ESTABLISHED ] ; then
echo $time 连接数警告,当前ESTABLISHED连接数异常,请登录服务器查看。当前连接数为$ESTABLISHEDV个,大于$ESTABLISHED个 | mail -s '9.20-7.ESTABLISHED' $MAILTO
fi
if [ $SYN_RECVV -gt $SYN_RECV ] ; then
echo $time 连接数警告,当前SYN_RECV连接数异常,请登录服务器查看。当前连接数为$SYN_RECVV个,大于$SYN_REC个 | mail -s '9.20-8.SYN_RECV' $MAILTO
fi
if [ $CLOSE_WAITV -gt $CLOSE_WAIT ] ; then
echo $time 连接数警告,当前CLOSE_WAIT连接数异常,请登录服务器查看。当前连接数为$CLOSE_WAITV个,大于$CLOSE_WAIT个 | mail -s '9.20-9.CLOSE_WAIT' $MAILTO
fi
if [ $CLOSINGV -gt $CLOSING ] ; then
echo $time 连接数警告,当前CLOSING连接数异常,请登录服务器查看。当前连接数为$CLOSINGV个,大于$CLOSING个 | mail -s '9.20-10.CLOSING' $MAILTO
fi
if [ $LAST_ACKV -gt $LAST_ACK ] ; then
echo $time 连接数警告,当前LAST_ACK连接数异常,请登录服务器查看。当前连接数为$LAST_ACKV个,大于$LAST_ACK个 | mail -s '9.20-11.LAST_ACK' $MAILTO
fi
if [ $TIME_WAITV -gt $TIME_WAIT ] ; then
echo $time 连接数警告,当前TIME_WAIT连接数异常,请登录服务器查看。当前连接数为$TIME_WAITV个,大于$TIME_WAIT个 | mail -s '9.20-12.TIME_WAIT' $MAILTO
fi
if [ $FIN_WAIT1V -gt $FIN_WAIT1 ] ; then
echo $time 连接数警告,当前FIN_WAIT1连接数异常,请登录服务器查看。当前连接数为$FIN_WAIT1V个,大于$FIN_WAIT1个 | mail -s '9.20-13.FIN_WAIT1' $MAILTO
fi
if [ $FIN_WAIT2V -gt $FIN_WAIT2 ] ; then
echo $time 连接数警告,当前FIN_WAIT2连接数异常,请登录服务器查看。当前连接数为$FIN_WAIT2V个,大于$FIN_WAIT2个 | mail -s '9.20-14.FIN_WAIT2' $MAILTO
fi
sleep 1
#磁盘使用率
DISKF=/tmp/.disk
df -h > $DISKF
BOOTV=`cat $DISKF | grep boot | awk '{print $5}'|awk -F% '{print $1}'`
#HOMEV=`cat $DISKF | grep home | awk '{print $4}'|awk -F% '{print $1}'`
grep VolGroup $DISKF > $NULL
#if [ $? -eq 0 ] ;then
ROOTV=`cat $DISKF | sed -n '3p' |awk '{print $4}'|awk -F% '{print $1}'`
#else
#ROOTV=`cat $DISKF | sed -n '2p'|awk '{print $5}'|awk -F% '{print $1}'`
#fi
if [ $ROOTV -gt $ROOT ] ; then
echo $time 磁盘使用警告,您监控的 / 分区已经大于你设置的数值$ROOT %,详情登陆系统查看,目前使用率为$ROOTV %| mail -s '9.20-15./ warning' $MAILTO
fi
if [ $BOOTV -gt $BOOT ] ; then
echo $time 磁盘使用警告,您监控的 /boot 分区已经大于你设置的数值 $BOOT %,详情登陆系统查看,目前使用率为$BOOTV % | mail -s '9.20-16./boot warning' $MAILTO
fi
#if [ $HOMEV -gt $HOME ] ; then
#echo $time 磁盘使用警告,您监控的 /home 分区已经大于你设置的数值 $HOME %,详情登陆系统查看,目前使用率为$HOMEV % | mail -s '9.20-17./home warning' $MAILTO
#fi
sleep 1
#CPU使用率
CPURATE=`top -b -n 1 |grep Cpu | awk '{print $2}' |awk -F% '{print $1}'`
CB=`expr $CPURATE \> $CPUTHRE`
if [ $CB -eq 1 ] ; then
echo $time 使用警告,您监控的CPU使用率,已经超过您设置的限额$CPUTHRE %,当前CPU使用率为$CPURATE | mail -s '9.20-18.CPU warning' $MAILTO
fi
DBUGS=YES
if [ "$DBUGS" == "$DBUG" ] ; then
echo " "'== 内 存 ==' ;echo \ ;
echo " "当前程序占用内存为 $MEMB % ,总占用内存为 $MEM % ; echo \ ;
echo " "'== 流 量 =='; echo \ ;
YA=`wc -l $INMBF > /dev/null 2>&1 ; echo $?`
if [ $YA -eq 1 ] ; then
echo 0 > $INMBF
fi
IN=`expr $INMB \> $INFLOWTHREMB >$NULL; echo $? ` 2> $NULL
if [ $IN -eq 1 ] ; then
echo " "当前输入流量为 $INMB MB/秒 .;
echo " "当前输入流量为 $INKB KB/秒 .;
fi
YB=`wc -l $OUTMBF > /dev/null 2>&1 ; echo $?`
if [ $YB -eq 1 ] ; then
echo 0 > $OUTMBF
fi
OUT=`expr $OUTMB \> $OUTFLOWTHREMB >$NULL ; echo $?` 2> $NULL
if [ $OUT -eq 1 ] ; then
echo " "当前输出流量为 $OUTMB MB/秒。 ;
echo " "当前输出流量为 $OUTKB KB/秒。 ; echo \ ;
fi
echo " "'== 连接数 ==' ; echo \ ;
echo " "当前TIME_WAIT" " 连接数为 $TIME_WAITV 个。
echo " "当前FIN_WAIT1" " 连接数为 $FIN_WAIT1V 个。
echo " "当前FIN_WAIT2" " 连接数为 $FIN_WAIT2V 个。
echo " "当前CLOSE_WAIT" " 连接数为 $CLOSE_WAITV 个。
echo " "当前ESTABLISHED"" 连接数为 $ESTABLISHEDV 个。
echo " "当前SYN_RECV" " 连接数为 $SYN_RECVV 个。
echo " "当前LAST_ACKV" " 连接数为 $LAST_ACKV 个。
echo " "当前CLOSING" " 连接数为 $CLOSINGV 个。; echo \ ;
echo " "'== CPU使用率 ==' ; echo \ ;
echo " "当前CPU 进程使用率为 $CPURATE . ;echo \ ;
echo " "'== 磁盘使用率 ==' ; echo \ ;
echo " "当前" "/" "分区," "使用率为 $ROOTV %.
echo " "当前 /boot 分区, 使用率为 $BOOTV %.
#echo " "当前 /home 分区, 使用率为 $HOMEV %.
exit
fi
sleep $RUNTIME
done
#System Monitoring Script
while [ 1 ]
do
#本机需开启postfix或sendmail服务。
#报警邮件地址设置
MAILTO=ytyxjk@163.com
#设置脚本运行间隔时间。单位(秒)。
RUNTIME=3600
#内存使用率监控设置,单位 (%)
MEMTHRE=85
#流量监控设置
#要监控的网卡
ETHX=eth0
#填写大于多少MB的时候发送警报,单位(MB)
INFLOWTHREMB=50
OUTFLOWTHREMB=50
#填写大于多少KB的时候发送警报,单位(KB)
INFLOWTHREKB=8000
OUTFLOWTHREKB=8000
#TCP连接状态数量监控设置
#填写最大连接的个数
TIME_WAIT=4000
FIN_WAIT1=500
FIN_WAIT2=200
ESTABLISHED=4000
SYN_RECV=100
CLOSE_WAIT=100
CLOSING=1000
LAST_ACK=3000
#CPU使用率监控设置
#填写cpu使用率大于多少发送报警,单位(%)
CPUTHRE=80
#硬盘使用大小设置
#填写硬盘占用率,单位(%)
ROOT=80
BOOT=80
#HOME=80
#调试模式开关。(YES/NO)
DBUG=NO
# 监 控 脚 本 执 行 内 容
################################################################################
time=`date +"%Y-%m-%d %H:%M:%S"`
#内存监控部分
NULL=/dev/null
MEM=`free -m |grep Mem |awk '{print $3/$2*100}'`
MEMB=`free -m |grep Mem |awk '{print $2,$4+$6+$7}'|awk '{print $1,$1-$2}'| awk '{print $2/$1*100}'`
memuse=`free -m|grep "buffers/cache"|awk '{print $3}'`
memtotal=`free -m|grep "Mem"|awk '{print $2}'`
memory=`echo "$memuse/$memtotal*100"|bc -l|cut -d. -f1`
MA=`expr $memory \> $MEMTHRE `
if [ $MA -eq 1 ] ; then
echo $time MEM内存警告,当前内存占用率为$MEM %,大于$MEMTHRE %. | mail -s '9.20-1.MEM warning' $MAILTO
fi
MB=`expr $MEMB \> $MEMTHRE`
if [ $MB -eq 1 ] ; then
echo $time MEMB内存警告,当前内存占用率为$MEMB %,大于$MEMTHRE % | mail -s '9.20-2.MEMB warning' $MAILTO
fi
sleep 1
#流量监控部分
FLOWA=/tmp/.flow
ifconfig $ETHX |grep "RX byte" |awk '{print $2" "$6}' |awk -Fbytes: '{print "INPUT "$2"OUTPUT "$3}'\ > $FLOWA
INPUTA=`cat $FLOWA |awk '{print $2}'`
OUTPUTA=`cat $FLOWA |awk '{print $4}'`
sleep 1
ifconfig $ETHX |grep "RX byte" |awk '{print $2" "$6}' |awk -Fbytes: '{print "INPUT "$2"OUTPUT "$3}'\ > $FLOWA
INPUTB=`cat $FLOWA |awk '{print $2}'`
OUTPUTB=`cat $FLOWA |awk '{print $4}'`
INPUTC=`echo "$INPUTB-$INPUTA" | bc`
OUTPUTC=`echo "$OUTPUTB-$OUTPUTA"| bc`
INPUTMBA=`echo "$INPUTC/1024"| bc`
OUTPUTMBA=`echo "$OUTPUTC/1024"| bc`
INMBF=/tmp/.inputMB
OUTMBF=/tmp/.outputMB
echo `echo "scale=2;$INPUTMBA/1024"| bc` MB > $INMBF
echo `echo "scale=2;$OUTPUTMBA/1024"| bc` MB > $OUTMBF
INMB=`cat $INMBF |awk '{print $1}'`
OUTMB=`cat $OUTMBF |awk '{print $1}'`
#if [ $INPUTMBA -gt 1024] ; then
#if [ $INMB -gt $INFLOWTHREMB] ;then
#echo $time 流量警告,in当前速率$INMB MB/秒,大于$INFLOWTHREMB MB/秒 | mail -s '9.20-3.in mb warning' $MAILTO
#fi
#if [ $OUTMB -gt $OUTFLOWTHREMB] ;then
#echo $time 流量警告,out当前速率$OUTMB MB/秒 大于$OUTFLOWTHREMB MB/秒 | mail -s '9.20-4.out mb warning' $MAILTO
#fi
#else
INKBF=/tmp/.inputKB
OUTKBF=/tmp/.outputKB
echo $INPUTMBA KB > $INKBF
echo $OUTPUTMBA KB > $OUTKBF
INKB=`cat $INKBF |awk '{print $1}'`
OUTKB=`cat $OUTKBF |awk '{print $1}'`
if [ $INKB -gt $INFLOWTHREKB ] ; then
echo $time 流量警告,in当前速率$INKB KB/秒 大于$INFLOWTHREKB KB/秒 | mail -s '9.20-5.in kb warning' $MAILTO
fi
if [ $OUTKB -gt $OUTFLOWTHREKB ] ;then
echo $time 流量警告,out当前速率$OUTKB KB/秒大于$INFLOWTHREKB KB/秒 | mail -s '9.20-6.out kb warning' $MAILTO
fi
#fi
sleep 1
#连接数
tcpfile=/tmp/.tcp
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' >$tcpfile
grep TIME_WAIT $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "TIME_WAIT 0 " >> $tcpfile
fi
grep FIN_WAIT1 $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "FIN_WAIT1 0 " >> $tcpfile
fi
grep FIN_WAIT2 $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "FIN_WAIT2 0 " >> $tcpfile
fi
grep CLOSE_WAIT $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "CLOSE_WAIT 0 " >> $tcpfile
fi
grep LAST_ACK $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "LAST_ACK 0 " >> $tcpfile
fi
grep SYN_RECV $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "SYN_RECV 0 " >> $tcpfile
fi
grep CLOSING $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "CLOSING 0 " >> $tcpfile
fi
grep ESTABLISHED $tcpfile > $NULL
if [ $? -eq 1 ] ; then
echo "ESTABLISHED 0 " >> $tcpfile
fi
TIME_WAITV=`grep TIME_WAIT $tcpfile | awk '{print $2}'`
FIN_WAIT1V=`grep FIN_WAIT1 $tcpfile | awk '{print $2}'`
FIN_WAIT2V=`grep FIN_WAIT2 $tcpfile | awk '{print $2}'`
ESTABLISHEDV=`grep ESTABLISHED $tcpfile | awk '{print $2}'`
SYN_RECVV=`grep SYN_RECV $tcpfile | awk '{print $2}'`
CLOSINGV=`grep CLOSING $tcpfile | awk '{print $2}'`
CLOSE_WAITV=`grep CLOSE_WAIT $tcpfile | awk '{print $2}'`
LAST_ACKV=`grep LAST_ACK $tcpfile | awk '{print $2}'`
if [ $ESTABLISHEDV -gt $ESTABLISHED ] ; then
echo $time 连接数警告,当前ESTABLISHED连接数异常,请登录服务器查看。当前连接数为$ESTABLISHEDV个,大于$ESTABLISHED个 | mail -s '9.20-7.ESTABLISHED' $MAILTO
fi
if [ $SYN_RECVV -gt $SYN_RECV ] ; then
echo $time 连接数警告,当前SYN_RECV连接数异常,请登录服务器查看。当前连接数为$SYN_RECVV个,大于$SYN_REC个 | mail -s '9.20-8.SYN_RECV' $MAILTO
fi
if [ $CLOSE_WAITV -gt $CLOSE_WAIT ] ; then
echo $time 连接数警告,当前CLOSE_WAIT连接数异常,请登录服务器查看。当前连接数为$CLOSE_WAITV个,大于$CLOSE_WAIT个 | mail -s '9.20-9.CLOSE_WAIT' $MAILTO
fi
if [ $CLOSINGV -gt $CLOSING ] ; then
echo $time 连接数警告,当前CLOSING连接数异常,请登录服务器查看。当前连接数为$CLOSINGV个,大于$CLOSING个 | mail -s '9.20-10.CLOSING' $MAILTO
fi
if [ $LAST_ACKV -gt $LAST_ACK ] ; then
echo $time 连接数警告,当前LAST_ACK连接数异常,请登录服务器查看。当前连接数为$LAST_ACKV个,大于$LAST_ACK个 | mail -s '9.20-11.LAST_ACK' $MAILTO
fi
if [ $TIME_WAITV -gt $TIME_WAIT ] ; then
echo $time 连接数警告,当前TIME_WAIT连接数异常,请登录服务器查看。当前连接数为$TIME_WAITV个,大于$TIME_WAIT个 | mail -s '9.20-12.TIME_WAIT' $MAILTO
fi
if [ $FIN_WAIT1V -gt $FIN_WAIT1 ] ; then
echo $time 连接数警告,当前FIN_WAIT1连接数异常,请登录服务器查看。当前连接数为$FIN_WAIT1V个,大于$FIN_WAIT1个 | mail -s '9.20-13.FIN_WAIT1' $MAILTO
fi
if [ $FIN_WAIT2V -gt $FIN_WAIT2 ] ; then
echo $time 连接数警告,当前FIN_WAIT2连接数异常,请登录服务器查看。当前连接数为$FIN_WAIT2V个,大于$FIN_WAIT2个 | mail -s '9.20-14.FIN_WAIT2' $MAILTO
fi
sleep 1
#磁盘使用率
DISKF=/tmp/.disk
df -h > $DISKF
BOOTV=`cat $DISKF | grep boot | awk '{print $5}'|awk -F% '{print $1}'`
#HOMEV=`cat $DISKF | grep home | awk '{print $4}'|awk -F% '{print $1}'`
grep VolGroup $DISKF > $NULL
#if [ $? -eq 0 ] ;then
ROOTV=`cat $DISKF | sed -n '3p' |awk '{print $4}'|awk -F% '{print $1}'`
#else
#ROOTV=`cat $DISKF | sed -n '2p'|awk '{print $5}'|awk -F% '{print $1}'`
#fi
if [ $ROOTV -gt $ROOT ] ; then
echo $time 磁盘使用警告,您监控的 / 分区已经大于你设置的数值$ROOT %,详情登陆系统查看,目前使用率为$ROOTV %| mail -s '9.20-15./ warning' $MAILTO
fi
if [ $BOOTV -gt $BOOT ] ; then
echo $time 磁盘使用警告,您监控的 /boot 分区已经大于你设置的数值 $BOOT %,详情登陆系统查看,目前使用率为$BOOTV % | mail -s '9.20-16./boot warning' $MAILTO
fi
#if [ $HOMEV -gt $HOME ] ; then
#echo $time 磁盘使用警告,您监控的 /home 分区已经大于你设置的数值 $HOME %,详情登陆系统查看,目前使用率为$HOMEV % | mail -s '9.20-17./home warning' $MAILTO
#fi
sleep 1
#CPU使用率
CPURATE=`top -b -n 1 |grep Cpu | awk '{print $2}' |awk -F% '{print $1}'`
CB=`expr $CPURATE \> $CPUTHRE`
if [ $CB -eq 1 ] ; then
echo $time 使用警告,您监控的CPU使用率,已经超过您设置的限额$CPUTHRE %,当前CPU使用率为$CPURATE | mail -s '9.20-18.CPU warning' $MAILTO
fi
DBUGS=YES
if [ "$DBUGS" == "$DBUG" ] ; then
echo " "'== 内 存 ==' ;echo \ ;
echo " "当前程序占用内存为 $MEMB % ,总占用内存为 $MEM % ; echo \ ;
echo " "'== 流 量 =='; echo \ ;
YA=`wc -l $INMBF > /dev/null 2>&1 ; echo $?`
if [ $YA -eq 1 ] ; then
echo 0 > $INMBF
fi
IN=`expr $INMB \> $INFLOWTHREMB >$NULL; echo $? ` 2> $NULL
if [ $IN -eq 1 ] ; then
echo " "当前输入流量为 $INMB MB/秒 .;
echo " "当前输入流量为 $INKB KB/秒 .;
fi
YB=`wc -l $OUTMBF > /dev/null 2>&1 ; echo $?`
if [ $YB -eq 1 ] ; then
echo 0 > $OUTMBF
fi
OUT=`expr $OUTMB \> $OUTFLOWTHREMB >$NULL ; echo $?` 2> $NULL
if [ $OUT -eq 1 ] ; then
echo " "当前输出流量为 $OUTMB MB/秒。 ;
echo " "当前输出流量为 $OUTKB KB/秒。 ; echo \ ;
fi
echo " "'== 连接数 ==' ; echo \ ;
echo " "当前TIME_WAIT" " 连接数为 $TIME_WAITV 个。
echo " "当前FIN_WAIT1" " 连接数为 $FIN_WAIT1V 个。
echo " "当前FIN_WAIT2" " 连接数为 $FIN_WAIT2V 个。
echo " "当前CLOSE_WAIT" " 连接数为 $CLOSE_WAITV 个。
echo " "当前ESTABLISHED"" 连接数为 $ESTABLISHEDV 个。
echo " "当前SYN_RECV" " 连接数为 $SYN_RECVV 个。
echo " "当前LAST_ACKV" " 连接数为 $LAST_ACKV 个。
echo " "当前CLOSING" " 连接数为 $CLOSINGV 个。; echo \ ;
echo " "'== CPU使用率 ==' ; echo \ ;
echo " "当前CPU 进程使用率为 $CPURATE . ;echo \ ;
echo " "'== 磁盘使用率 ==' ; echo \ ;
echo " "当前" "/" "分区," "使用率为 $ROOTV %.
echo " "当前 /boot 分区, 使用率为 $BOOTV %.
#echo " "当前 /home 分区, 使用率为 $HOMEV %.
exit
fi
sleep $RUNTIME
done