Bonjour,
J'ai ecri un script qui li un fichier qui contient une liste d'adresse en entrée, et qu'il fait un show cdp neighbors au niveau de chaque équipement .
Mon script perl :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#!/usr/bin/perl
#use strict;
use Net::Telnet;
open(HOSTS, "Hosts.txt");
mkdir("Hosts") if(!-d("Hosts"));
open(MODEL_CFG, ">Hosts/hosts");
while(<HOSTS>) {
chomp();
# my($HOSTADDRESS, $HOSTNAME, $communaute, $interfaces) = split(/ +/);
my($HOSTADDRESS, $HOSTNAME) = split(/ +/);
print $HOSTADDRESS,"\n";
#print $HOSTNAME ;
$telnet = new Net::Telnet ( Timeout=>20,Errmode=>'die');
$telnet->open($HOSTADDRESS);
$telnet->waitfor('/Username: $/i');
$telnet->print('USER');
$telnet->waitfor('/password: $/i');
$telnet->print('PASSWORD');
$telnet->waitfor('/#$/i');
$telnet->print("show cdp neighbors");
my @output = $telnet->waitfor('/#$/i'); |
tout marche bien ,
au niveau d'une certaine ligne de mon fichier d'entrée, j'ai cette erreur :
pattern match timed-out at ./Hosts.pl line 21
line 21 = my @output = $telnet->waitfor('/#$/i');
Pourtant qu'il lit bien un grand nombre d'adresse dans le fichier en entrée au debut .
Quand je fait un telnet manuellement sur l'équipement , cela marche bien .
Comment résoudre cela svp ?
Partager