#!/usr/bin/perl use Getopt::Std; getopt('c:',\%opts); if($opts{'c'} eq ""){ print "Usage: $0 -c \n"; exit; } $th = $opts{'c'}; @data=`vtysh -c "show ip bgp summary"`; $r = "0"; foreach $a (@data) { chomp $a; if($a =~ /^Total/){$r = 0}; if($r == "1" && $a !~ /^$/){ push(@lines,$a); } if($a =~ /^Neighbor/){ $r = 1}; } foreach $a (@lines){ @line = split /\s+/,$a; if($line[9] < $th || $line[9] ==""){ $error = "1"; push(@ip,$line[0]); push(@prefix,$line[9]); }; } if($error == "1"){ for($i=0;$i<=$#ip;$i++){ $ips = $ips." ".$ip[$i]." ($prefix[$i])"; } print "BGP CRITICAL $ips BROKEN\n"; } else { print "BGP OK\n"; }