read commands from STDIN if used as pipe
[dell-switch] / syslog-count-link.pl
index d33c477..c78ee40 100755 (executable)
@@ -98,9 +98,9 @@ while(<>) {
        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
@@ -131,7 +131,7 @@ while(<>) {
                next;
        }
 
-       if ( -e "$dir/dump" ) {
+       if ( -e "$dir/dump" || $ENV{DUMP} ) {
                print "### ",strftime("%Y-%m-%d %H:%M:%S",localtime(time)), "\n";
                print_stats;
        }