# ./sw-name-mac.sh
# usage: NAME_MAC=/dev/shm/file-with-name-space-mac sbw-parse.pl [optional-switch-snmpbulkwalk-dump]
+#
+# cat /dev/shm/neighbors.tab | grep MikroTik | tee /dev/stderr | awk '{ print $7 "_" $8 " " $3 }' > /tmp/name-mac
+# NAME_MAC=/tmp/name-mac ./sbw-parse.pl
use Data::Dump qw(dump);
my @cols = qw( ifName ifHighSpeed ifAdminStatus ifOperStatus ifType dot1dStpPortPathCost ifAlias );
+my @name_mac_files = ( qw( /dev/shm/sw-name-mac /dev/shm/wap-name-mac ), $ENV{NAME_MAC}, glob '/dev/shm/name-mac*' );
my $mac2name;
-foreach my $name_mac ( qw( /dev/shm/sw-name-mac /dev/shm/wap-name-mac ), $ENV{NAME_MAC} ) {
+foreach my $name_mac ( @name_mac_files ) {
next unless -e $name_mac;
open(my $f, '<'. $name_mac);
+ my $count = 0;
while(<$f>) {
chomp;
#my ( $ip, $name, $mac ) = split(/ /,$_);
my ( $name, $mac ) = split(/ /,$_);
$mac = lc($mac);
$mac2name->{$mac} = $name;
+ $count++;
}
+ warn "## $name_mac $count";
}
sub mac2name {
print "# gv = ",dump( $gv );
-open(my $dot_fh, '>', '/tmp/network.dot');
+open(my $dot_fh, '>', '/dev/shm/network.dot');
print $dot_fh qq|
digraph topology {
graph [ rankdir = LR ]
}
|;
-system "dot -Tsvg /tmp/network.dot > /var/www/network.svg";
+system "dot -Tsvg /dev/shm/network.dot > /var/www/network.svg";
+system 'git -C /dev/shm commit -m $( date +%Y-%m-%d ) network.dot' if ! $debug;