Vlan cisco avec Net::Telnet::Cisco - Perl - Programmation
Marsh Posté le 12-09-2008 à 10:35:15
Je suppose qu'avant de faire ça, dans le script, tu as pu te logger avec passwd et créér une session valide.
Net::Telnet::Cisco depend de Net::Telnet ou le timeout par défaut est de 10 secondes.
Essayes d'augmenter la valeur du timeout ici pour voir:
my @output2 = $session->cmd(String => 'vlan database', Timeout => 30);
A la limite, regardes quand tu le fais en direct sous telnet, combien de temps ca prends pour répondre.
A+,
Marsh Posté le 12-09-2008 à 10:58:26
J'ai déjà essayer de jouer avec la variable du time out et même résultat, quand je le fait en direct, c'est instantané
Merci de te pencher sur mon problème
Marsh Posté le 12-09-2008 à 11:36:04
Bon alors il faut tracer:
1) mettre error a return et non die:
my @output2 = $session->cmd(String => 'vlan database', Errmode => "return" );
si ca ne passe pas comme argument, fais le au niveau de la creation de la session.
2) récupérer les messages d'erreur et les imprimer:
my $msg = $session->errmsg;
print $msg;
my @msgs;
my $prev = $session->errmsg(@msgs);
print $prev;
# et les autres messages d'erreur sont dans @msgs
...
exit;
ca devrait aider a tracer d'ou vient le pb.
A+,
Marsh Posté le 12-09-2008 à 12:08:23
Je te remercie.
J'ai testé ça et apparement il n'apprécie pas les 3 lignes retournées par "vlan database" j'ai donc décider de le faire avec "conf t".
Encore merci
Marsh Posté le 12-09-2008 à 12:55:49
Il apprécie pas?? Pas très claire, ton explication.
Si c'est juste une histoire de protocole de transmission mal reconnu (binmode?...), tu peux aller voir dans les options de Net::Telnet dont Net::Telnet::Cisco est une sous classe avec pas mal de trucs par défaut.
A+,
Marsh Posté le 12-09-2008 à 10:08:51
Bonjour,
Jaimerai mettre en place un script perl qui automatiserait la création de vlan dans un cisco, mon programme fonctionne jusqu'au moment où la commande "vlan database" doit être rentrée, et à cette instant j'ai l'erreur suivante : "command timed-out at ./prog.pl line #cidessous#"
ma ligne dans le programme est :
my @output2 = $session->cmd(String => 'vlan database');
Avez vous une idée d'où cela peut venir ?
Merci d'avance