一个简单的nagos插件脚本 , 监控 TCP 各状态的数量

#!/bin/bash
#===============================================#
# Description :        Check the TCP-connection                                            #
#===============================================#

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKOWN=3


CONN_TMP="/tmp/netstat.tmp"
CONN=`netstat -ant | awk '/^tcp/ && !/LISTEN/{a[$NF]++}END{for(i in a) print i,a[i]}'`

echo $CONN > $CONN_TMP

EST=`cat $CONN_TMP | awk '/ESTABLISHED/{ print $2 }'`
TIME_WAIT=`cat $CONN_TMP | awk '/TIME_WAIT/{ print $2 }'`
SYN_RECV=`cat $CONN_TMP | awk '/SYN_RECV/{ print $2 }'`
FIN_WAIT1=`cat $CONN_TMP | awk '/FIN_WAIT1/{ print $2 }'`
FIN_WAIT2=`cat $CONN_TMP | awk '/FIN_WAIT2/{ print $2 }'`
LAST_ACK=`cat $CONN_TMP | awk '/LAST_ACK/{ print $2 }'`
CLOSE_WAIT=`cat $CONN_TMP | awk '/CLOSE_WAIT/{ print $2 }'`


if ! [ `uname` = "Linux" ] ;then
        echo "This plugin is support Linux system,not support another system now"
        echo "This plugin will check TCP connections  "
fi

if [ "$EST" -gt 5000 ];then
        echo "ESTABLISHED is too many; ESTABLISHED: $EST ; TIME_WAIT: $TIME_WAIT ; SYN_RECV: $SYN_RECV ; FIN_WAIT1: $FIN_WAIT1 ; FIN_WAIT2: $FIN_WAIT2 ; LAST_ACK: $LAST_ACK ; CLOSE_WAIT: $CLOSE_WAIT"
        exit $STATE_CRITICAL
else
        echo "ESTABLISHED is normal; ESTABLISHED: $EST ; TIME_WAIT: $TIME_WAIT ; SYN_RECV: $SYN_RECV ; FIN_WAIT1: $FIN_WAIT1 ; FIN_WAIT2: $FIN_WAIT2 ; LAST_ACK: $LAST_ACK ; CLOSE_WAIT: $CLOSE_WAIT"
        exit $STATE_OK
fi

for a in $EST $TIME_WAIT $SYN_RECV $FIN_WAIT1 $FIN_WAIT2 $LAST_ACK $CLOSE_WAIT
do
        if [[ $a =~ "^[0-9]{1,}$" || $a = "" ]]
                echo "UNKOWN `uname` no yet support by this plugin"
                exit $STATE_UNKOWN
        fi
done





本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/705984,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值