Author: glen                         Date: Wed Jan 21 14:10:30 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- filter with awk

---- Files affected:
SOURCES:
   cacti-plugin-snmp_tcp_connection_status.sh (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/cacti-plugin-snmp_tcp_connection_status.sh
diff -u SOURCES/cacti-plugin-snmp_tcp_connection_status.sh:1.1 
SOURCES/cacti-plugin-snmp_tcp_connection_status.sh:1.2
--- SOURCES/cacti-plugin-snmp_tcp_connection_status.sh:1.1      Wed Jan 21 
14:48:00 2009
+++ SOURCES/cacti-plugin-snmp_tcp_connection_status.sh  Wed Jan 21 15:10:24 2009
@@ -1,32 +1,29 @@
-#/bin/bash
+#!/bin/sh
 
 # get number of tcp connection
 # $1 = hostname
 # $2 = snmp community
 # lots of ways to do this with more style... ;)
 # [email protected]
+#
+# modified by Elan Ruusamäe <[email protected]>
 
-CACTIDIR=/var/www/htdocs/cacti/scripts
 TMPDIR=/tmp
 
-cd $CACTIDIR
-
-
-snmpnetstat -v 2c -c $2 -Can -Cp tcp $1 > $TMPDIR/$1
-
-ESTABLISHED=`grep ESTABLISHED $TMPDIR/$1 |wc -l`
-LISTENING=`grep LISTEN $TMPDIR/$1 |wc -l`
-TIME_WAIT=`grep TIMEWAIT $TMPDIR/$1 |wc -l`
-TIME_CLOSE=`grep TIMECLOSE $TMPDIR/$1 |wc -l`
-FIN1=`grep FINWAIT1 $TMPDIR/$1 |wc -l`
-FIN2=`grep FINWAIT2 $TMPDIR/$1 |wc -l`
-SYNSENT=`grep SYNSENT $TMPDIR/$1 |wc -l`
-SYNRECV=`grep SYNRECV $TMPDIR/$1 |wc -l`
-
-echo -n established:${ESTABLISHED} listen:${LISTENING} time_wait:${TIME_WAIT} 
time_close:${TIME_CLOSE} syn_sent:${SYNSENT} fin_wait1:${FIN1} 
fin_wait2:${FIN2} syn_recv:${SYNRECV}
-
-# uncomment for debugging:
-# echo $1: established:$ESTABLISHED listen:$LISTENING time_wait:$TIME_WAIT 
time_close:$TIME_CLOSE syn_sent:$SYN fin_wait1:$FIN1 fin_wait2:$FIN2 >> 
$TMPDIR/tcp.log
-
-# may want to comment this for debugging too
-rm $TMPDIR/$1
+snmpnetstat -v 2c -c "$2" -Can -Cp tcp "$1" | 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?)
+               # XXX TIMECLOSE missing
+               split("closed listen syn_sent syn_recv established fin_wait1 
fin_wait2 closewait lastack closing time_wait", m, " ");
+               for (i in t) {
+                       s = t[i];
+                       k = m[i];
+                       printf("%s:%d ", k, ss[s]);
+               }
+}'
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/cacti-plugin-snmp_tcp_connection_status.sh?r1=1.1&r2=1.2&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to