r4907 - developers/werner/bin
werner at docs.openmoko.org
werner at docs.openmoko.org
Tue Jan 27 09:30:19 CET 2009
Author: werner
Date: 2009-01-27 09:30:18 +0100 (Tue, 27 Jan 2009)
New Revision: 4907
Added:
developers/werner/bin/snmp
Log:
Utility to track changes to /proc/net/snmp
Added: developers/werner/bin/snmp
===================================================================
--- developers/werner/bin/snmp (rev 0)
+++ developers/werner/bin/snmp 2009-01-27 08:30:18 UTC (rev 4907)
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+# Show /proc/net/snmp in a readable format. Optionally, show differences
+# after intervals.
+#
+# usage: snmp
+# snmp <interval>
+#
+$SNMP = "/proc/net/snmp";
+$LINE = 78;
+$continuous = $ARGV[0];
+do {
+ open(PROC,$SNMP) || die "open $SNMP: $!";
+ while (<PROC>) {
+ @label = split(" ");
+ @data = split(" ",<PROC>);
+ $tag = $label[0];
+ $j = 0;
+ $fields = $#label+1;
+ while ($j < $fields) {
+ $first = $second = "";
+ $put = 0;
+ for ($i = $j; $i < $fields; $i++) {
+ if (!$put || $last{$tag.$label[0]} != $data[0]+1 ||
+ !$continuous) {
+ $data = $continuous && $put && $more ?
+ sprintf("%+d", $data[0]-$last{$tag.$label[0]}+1) :
+ $data[0];
+ $size = length($label[0]) > length($data) ?
+ length($label[0]) : length($data);
+ if (length($second)+$size > $LINE) {
+ unshift(@label,$tag);
+ unshift(@data,$tag);
+ $i--;
+ last;
+ }
+ $first .= sprintf("%-${size}s ",$label[0]);
+ $second .= sprintf("%${size}s ",$data);
+ $last{$tag.$label[0]} = $data[0]+1;
+ $put++;
+ }
+ shift(@label);
+ shift(@data);
+ }
+ print "$first\n$second\n" if $put > 1;
+ $j = $i;
+ }
+ }
+ if ($continuous) {
+ sleep($continuous);
+ print (("-"x$LINE)."\n");
+ }
+ $more = 1;
+}
+until (!$continuous);
Property changes on: developers/werner/bin/snmp
___________________________________________________________________
Name: svn:executable
+ *
More information about the commitlog
mailing list