1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#!/usr/bin/perl
#
# Script de ping par telnet
#
#
use warnings;
require '/home/www/tools/cisco.pl';
use Config::IniFiles;
use Time::HiRes qw( usleep ualarm gettimeofday tv_interval );
#my $cfg=new Config::IniFiles( -file => "/home/www/config/config.ini");
#my $login=$cfg->val("login");
my $login="*********";
#my $passwd=$cfg->val("passwd");
my $passwd="*********";
my $enable='enable_password';
my $LOGDIR='/home/www/log/ping';
my $output="$LOGDIR/migCE2out.csv";
$DEBUG=1;
#$LIMITE=100; # Nombre max de routeurs que l'on souhaite tester
my $addrAdmin=$ARGV[0];
my $mask=$ARGV[1];
my $eqtype=$ARGV[2];
if(not defined($addrAdmin)){
print "STATUS=0\n";
exit;
}else{
print "ipAdmin=$addrAdmin\n";
}
open(F,">>$output") || die "Cannot open input file $output:$!\n";
#my $rtr=CiscoLogin2($login,$passwd,$addrAdmin,60);
my $rtr=Net::Telnet::Cisco->new(Host=>$addrAdmin,Errmode=>'return',
Timeout=>10,
Input_log=>"$LOGDIR/$addrAdmin.log"
);
if($rtr){
my $prompt='/(?m:^[\w.-]+\s?(?:\(config[^\)]*\))?\s?[\$#> ]\s?(?:\(enable\))?\s*$)/';
$rtr->ignore_warnings;
$rtr->errmode("return");
if($rtr->login(Name=>$login,Password=>$passwd,Prompt=>$prompt)){
}else{
print "$addrAdmin;echec login;\n";
print "STATUS=0\n";
exit;
}
}else{
print "$addrAdmin;echec telnet;\n";
print "STATUS=0\n";
exit;
}
my $status=0;
if($rtr){
$telnetStatus='OK';
# ping pour equipement catalyst
if($eqtype=~m/CAT(.*)/i){
my @cmd=("ping -s $mask 56 2");
push(@cmd,"exit");
foreach(@cmd){
print ">> $_\n";
@output=CiscoCmd($rtr,$_);
}
}else{
# ping pour equipement cisco
my @cmd=("ping","ip","$mask","2","56","2","n","n");
#my @cmd=("ping $mask");
push(@cmd,"exit");
foreach(@cmd){
print ">> $_\n";
@output=CiscoCmd($rtr,$_);
}
}
$status=1;
}else{
debug("HS\n");
}
print F "$addrAdmin;$telnetStatus;\n";
CiscoLogout($rtr);
close F;
print "STATUS=$status\n";
sub debug{
if($DEBUG==1){
print @_;
}
} |
Partager