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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?