#!/bin/bash -e
-. snmp.conf # get COMMUNITY
+. ./snmp.conf # get COMMUNITY
log=/dev/shm/sw.mac.port
-test -d $log && mv $log $log.last
+if [ -e $log.last ] ; then
+ mv -v $log.last $log.last.`ls -d $log.last* | wc -l`
+fi
+test -d $log && mv -v $log $log.last
mkdir $log
-./ips | while read ip
+snmp_walk() {
+ ip=$1
+ snmpwalk -O0sUX -v2c -Cc -c $COMMUNITY $ip BRIDGE-MIB::dot1dTpFdbPort | tee $log/snmp.$ip
+ #snmpwalk -v 2c -c $COMMUNITY $ip 1.3.6.1.2.1.17.4.3.1 2>>/dev/shm/sw.errors | tee $log/snmp.$ip
+ #snmpwalk -v 2c -c $COMMUNITY $ip 1.3.6.1.2.1.17.4.3.1.2 2>>/dev/shm/sw.errors | sed 's/iso.3.6.1.2.1.17.4.3.1.2./ /g' | awk '{print $1" .g"$4}' | awk -v sw="$ip" -F '.' '{ printf "%02X:%02X:%02X:%02X:%02X:%02X,%s,%s\n", $1, $2, $3, $4, $5, $6, $7, sw }' | tee $log/$ip
+}
+
+if [ ! -z "$1" ] ; then
+ while [ ! -z "$1" ] ; do
+ snmp_walk $1
+ shift
+ done
+ exit 0
+fi
+
+#( ls -d $log.last/* | sed 's/^.*\///' ; ./ips ) | sort -u | while read ip
+grep '^\[snmp;sw' /etc/munin/munin.conf | cut -d';' -f2 | sed 's/\]$//' | while read ip
do
- snmpwalk -v 2c -c $COMMUNITY $ip 1.3.6.1.2.1.17.4.3.1.2 2>>/dev/shm/sw.errors | sed 's/iso.3.6.1.2.1.17.4.3.1.2./ /g' | awk '{print $1" .g"$4}' | awk -v sw="$ip" -F '.' '{ printf "%02X:%02X:%02X:%02X:%02X:%02X,%s,%s\n", $1, $2, $3, $4, $5, $6, $7, sw }' | tee $log/$ip
+ echo "## $ip"
+ snmp_walk $ip
done