#!/bin/bash -e . ./snmp.conf # get COMMUNITY log=/dev/shm/sw.mac.port 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 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 echo "## $ip" snmp_walk $ip done