]> git.pld-linux.org Git - packages/cacti-template-snmp_tcp_connection_status.git/commitdiff
- support using simple snmpget
authorElan Ruusamäe <glen@pld-linux.org>
Fri, 23 Oct 2009 14:00:45 +0000 (14:00 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    cacti-template-snmp_tcp_connection_status.sh -> 1.5

cacti-template-snmp_tcp_connection_status.sh

index 56e73d9e1be4ee10a115f3c752a6ba2163824149..21afdbbe4c9fd58a6676fbf015aa255ae654104c 100644 (file)
@@ -1,26 +1,59 @@
 #!/bin/sh
 #
-# get number of tcp connection
-# jbrooks@oddelement.com
+# get number of tcp connections
+# original code and xml templates by: <jbrooks@oddelement.com>
+# history:
+# http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/cacti-template-snmp_tcp_connection_status/cacti-template-snmp_tcp_connection_status.sh
 #
-# modified to use awk and added timeout param by Elan Ruusamäe <glen@pld-linux.org>
+# Modified to use snmpd server side summary script Elan Ruusamäe <glen@pld-linux.org>
+
+PROGRAM=${0##*/}
+
+# parse command line args
+t=$(getopt -o o: -n "$PROGRAM" -- "$@")
+[ $? != 0 ] && exit $?
+eval set -- "$t"
+
+while :; do
+       case "$1" in
+       -o)
+               snmpget=$2
+               shift
+       ;;
+       --)
+               shift
+               break
+       ;;
+       *)
+               echo 2>&1 "$PROGRAM: Internal error: [$1] not recognized!"
+               exit 1
+       ;;
+       esac
+       shift
+done
 
 hostname=$1
 snmp_community=${2:-public}
 timeout=${3:-10}
 retry=5
 
-if [ -z "$hostname" ]; then
+if [ -z "$hostname" -o "$hostname" = "hostcommunity" ]; then # WTF
        echo >&2 "Usage: $0 HOSTNAME [SNMP_COMMUNITY] [TIMEOUT]"
        exit 1
 fi
 
+if [ "$snmpget" ]; then
+       local out
+       out=$(snmpget -v2c -On -c "$snmp_community" -t "$timeout" "$hostname" "$snmpget") || exit $?
+       echo ${out#.*STRING: }
+       exit 0
+fi
+
 snmpnetstat -v 2c -r "$retry" -c "$snmp_community" -t "$timeout" -Can -Cp tcp "$hostname" | awk '
        $1 == "tcp" {
                ss[$4]++;
        }
 
-       END {
                # socket states from net-snmp-5.4.2.1/apps/snmpnetstat/inet.c
                split("CLOSED LISTEN SYNSENT SYNRECEIVED ESTABLISHED FINWAIT1 FINWAIT2 CLOSEWAIT LASTACK CLOSING TIMEWAIT", t, " ");
                # create mapping (duh, why there are different data names used?)
This page took 0.093336 seconds and 4 git commands to generate.