公司IDC机房有几百台服务器,交换机几十台。出现流量异常的时候,不能迅速定位到哪台服务器。于是学了2天perl,写个脚本进行统计。
- #!/usr/bin/perl
-
#统计交换机端口下联设备IP和Mac地址
-
use Net::Telnet::Cisco;
-
open HOST,";
-
open IP,";
-
while (<HOST>){
-
chomp;
-
push(@host,$_);
-
}
-
close HOST;
-
while (<IP>){
-
chomp;
-
push(@ip,$_);
-
}
-
close IP;
-
foreach $h (@host){
-
print $h;
-
my $session = Net::Telnet::Cisco->new(Host => "$h");
-
$session->login('cisco', 'PASSWD');
-
open OUT,">>/home/Switch/$h.txt";
-
# Enable mode
-
if ($session->enable("ENPASSWD") ) {
-
print "Cennect is ok\n";
-
} else {
-
warn "Can't enable: " . $session->errmsg;
-
}
-
foreach $i (@ip){
-
my @outputing = $session->cmd("ping $i");
-
my @arp = $session->cmd("show ip arp | in $i");
-
my @result=split( ' ' , $arp[0] );
-
my @mac = $session->cmd("show mac-address-table dy add $result[3]");
-
my @IPlist = split( ' ' , $mac[5] );
-
if ($IPlist[3]=~/.*\/.*/){
-
print OUT "$i $IPlist[1] $IPlist[3]\n";
-
}
-
}
-
close OUT;
-
$session->close;
-
}
阅读(1648) | 评论(3) | 转发(0) |