use POSIX qw(strftime);
my $timeout = $ENV{TIMEOUT} || 60; # forget switch after sec
+# timeout should be smaller than stp refresh inverval or
+# stp messages will accumulate forever
my $name = $0;
$name =~ s/.*\/([^\/]+)$/$1/;
delete $stat->{$host}->{$port};
next;
}
- my $out = sprintf "%-12s %-4s %-2d %s\n", $host, $port, $dt, $stat->{$host}->{$port}->[1];
+ my $out = sprintf "%-12s %-8s %-2d %s\n", $host, $port, $dt, $stat->{$host}->{$port}->[1];
print $out;
print $fh $out;
}
if ( m/(\S+)\s%LINK-[IW]-(\w+):\s*(\w+)/ ) {
my ($host,$state,$port) = ($1,$2,$3);
stat_host_port( $host, $port, substr($state,0,1) );
- } elsif ( m/(\S+)\s%STP-W-PORTSTATUS:\s([\w\/]+): STP status (\w+)/ ) {
- my ($host,$port,$state) = ($1,$2,$3);
- stat_host_port( $host, $port, '-' );
+ } elsif ( m/(\S+)\s%STP-W-PORTSTATUS:\s([\w\/]+)(?: of instance \d+)?: STP status (\w+)/ ) {
+ my ($host,$port,$state) = ($1,$2,substr($3,0,1) );
+ stat_host_port( $host, $port, $state =~ m/f/i ? '-' : $state );
## Dell new
stat_host_port( $host, $port, substr($state,0,1) );
+ } elsif ( m/($host_re) TRAPMGR.* %% Spanning Tree Topology Change: (\d+)/ ) {
+ my ( $host, $state ) = ( $1, $2 );
+ stat_host_port( $host, 'STP', $2 );
+
+
} elsif ( m'==> /var/log/' ) {
# ignore tail output
next;
next;
}
- if ( -e "$dir/dump" ) {
+ if ( -e "$dir/dump" || $ENV{DUMP} ) {
print "### ",strftime("%Y-%m-%d %H:%M:%S",localtime(time)), "\n";
print_stats;
}