Script Telnet switcht Nortel/Avaya - Perl - Programmation
Marsh Posté le 07-06-2013 à 11:48:08
Bonjour,
Avez vous lu les deux sujets suivants:
http://forum.hardware.fr/hfr/Progr [...] 9513_1.htm
http://forum.hardware.fr/hfr/Progr [...] 9577_1.htm
Il se pourrait bien que les informations qui y figurent suffisent a résoudre votre pb, sinon, on poussera plus en avant les investigations.
A+,
Marsh Posté le 07-06-2013 à 13:39:03
gilou a écrit : Bonjour, |
Merci pour ta réponse rapide mais j'ai déjà lu ces deux sujets sans pour autant trouver une solution à mon problème.
Lorsque je test ces lignes :
Code :
|
mon get() renvoie:
?[16;1HEnter Ctrl-Y to begin.?[18;3H********************************************
*******************?[19;3H*** Ethernet Switch 470-48T ?[19;63H***?[20;3H***
Nortel ***?[21;3H*** Copyright
(c) 1996-2009, All Rights Reserved ***?[22;3H*** ESS 3.7 SSH?[22;63H*
**?[23;3H*** HW:33 FW:3.6.0.7 SW:v3.7.6.01 ISVN:2 ?[23;63H***?[24;3H****
***********************************************************?[?25l?[14;1H?[2K?[4;
1H?[2K?[4;26HUsername: [ ]?[5;36H?[7;1m[ *************** ]?[0m?[
14;26HEnter Password: ?[?14l?[2J?[1;38HNetLogin?[4;26HUsername: ?[7;1m[ ]?[5;36
H?[7;1m[ *************** ]?[0m?[23;1H?[2KEnter text, press <Return> or <Enter> w
hen complete.?[14;26HEnter Username:
_____________________________________________________________________________
Et lorsque j'ajoute la fonction login:
Code :
|
Mon get() me renvoie:
←[14;1H←[2K←[14;26HEnter Password: *******←[14;26H←[2KUsername not set.
_____________________________________________________________________________
Que j'utilise login() ou waitfor() j'ai toujours ce Username not set!
j 'ai aussi utilisé la commande dump_log dans mon script:
$TLENET->waitfor("Enter CTRL-y to begin." );
$TELNET->print("\cY" );
$TELNET->dump_log("avantlogin.txt" );
$TELNET->login("dupont","mdp" );
$TELNET->dump("apreslogin.txt" );
.
.
.
avantloin.txt donne:
< 0x003c0: 20 2a 0a 0d 1b 5b 31 34 3b 31 48 20 20 2a 2a 2a *...[14;1H ***
< 0x003d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x003e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x003f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00400: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0d 1b 5b ************...[
< 0x00410: 31 35 3b 31 48 0a 0d 1b 5b 31 36 3b 31 48 45 6e 15;1H...[16;1HEn
< 0x00420: 74 65 72 20 43 74 72 6c 2d 59 20 74 6f 20 62 65 ter Ctrl-Y to be
< 0x00430: 67 69 6e 2e 1b 5b 31 38 3b 33 48 2a 2a 2a 2a 2a gin..[18;3H*****
< 0x00440: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00450: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00460: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x00470: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 1b 5b 31 39 3b 33 **********.[19;3
< 0x00480: 48 2a 2a 2a 20 45 74 68 65 72 6e 65 74 20 53 77 H*** Ethernet Sw
< 0x00490: 69 74 63 68 20 34 37 30 2d 34 38 54 20 20 20 20 itch 470-48T
< 0x004a0: 20 1b 5b 31 39 3b 36 33 48 2a 2a 2a 1b 5b 32 30 .[19;63H***.[20
< 0x004b0: 3b 33 48 2a 2a 2a 20 4e 6f 72 74 65 6c 20 20 20 ;3H*** Nortel
< 0x004c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x004d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x004e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
< 0x004f0: 2a 2a 1b 5b 32 31 3b 33 48 2a 2a 2a 20 43 6f 70 **.[21;3H*** Cop
< 0x00500: 79 72 69 67 68 74 20 28 63 29 20 31 39 39 36 2d yright (c) 1996-
< 0x00510: 32 30 30 39 2c 20 20 41 6c 6c 20 52 69 67 68 74 2009. All Right
< 0x00520: 73 20 52 65 73 65 72 76 65 64 20 20 20 20 20 20 s Reserved
< 0x00530: 20 20 20 20 20 2a 2a 2a 1b 5b 32 32 3b 33 48 2a ***.[22;3H*
< 0x00540: 2a 2a 20 45 53 53 20 33 2e 37 20 53 53 48 1b 5b ** ESS 3.7 SSH.[
< 0x00550: 32 32 3b 36 33 48 2a 2a 2a 1b 5b 32 33 3b 33 48 22;63H***.[23;3H
< 0x00560: 2a 2a 2a 20 48 57 3a 33 33 20 20 20 20 20 20 20 *** HW:33
< 0x00570: 46 57 3a 33 2e 36 2e 30 2e 37 20 20 20 53 57 3a FW:3.6.0.7 SW:
< 0x00580: 76 33 2e 37 2e 36 2e 30 31 20 49 53 56 4e 3a 32 v3.7.6.01 ISVN:2
< 0x00590: 20 1b 5b 32 33 3b 36 33 48 2a 2a 2a 1b 5b 32 34 .[23;63H***.[24
< 0x005a0: 3b 33 48 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ;3H*************
< 0x005b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
< 0x005e0: 2a 2a 1b 5b 3f 32 35 6c 1b 5b 31 34 3b 31 48 1b **.[?25l.[14;1H.
< 0x005f0: 5b 32 4b 1b 5b 34 3b 31 48 1b 5b 32 4b 1b 5b 34 [2K.[4;1H.[2K.[4
< 0x00600: 3b 32 36 48 55 73 65 72 6e 61 6d 65 3a 20 5b 20 ;26HUsername: [
< 0x00610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
< 0x00620: 5d 1b 5b 35 3b 33 36 48 1b 5b 37 3b 31 6d 5b 20 ].[5;36H.[7;1m[
< 0x00630: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 ***************
< 0x00640: 5d 1b 5b 30 6d 1b 5b 31 34 3b 32 36 48 45 6e 74 ].[0m.[14;26HEnt
< 0x00650: 65 72 20 50 61 73 73 77 6f 72 64 3a 20 1b 5b 3f er Password: .[?
< 0x00660: 31 34 6c 1b 5b 32 4a 1b 5b 31 3b 33 38 48 4e 65 14l.[2J.[1;38HNe
< 0x00670: 74 4c 6f 67 69 6e 1b 5b 34 3b 32 36 48 55 73 65 tLogin.[4;26HUse
< 0x00680: 72 6e 61 6d 65 3a 20 1b 5b 37 3b 31 6d 5b 20 20 rname: .[7;1m[
< 0x00690: 5d 1b 5b 35 3b 33 36 48 1b 5b 37 3b 31 6d 5b 20 ].[5;36H.[7;1m[
< 0x006a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 ***************
< 0x006b0: 5d 1b 5b 30 6d 1b 5b 32 33 3b 31 48 1b 5b 32 4b ].[0m.[23;1H.[2K
< 0x006c0: 45 6e 74 65 72 20 74 65 78 74 2c 20 70 72 65 73 Enter text. pres
< 0x006d0: 73 20 3c 52 65 74 75 72 6e 3e 20 6f 72 20 3c 45 s <Return> or <E
< 0x006e0: 6e 74 65 72 3e 20 77 68 65 6e 20 63 6f 6d 70 6c nter> when compl
< 0x006f0: 65 74 65 2e 1b 5b 31 34 3b 32 36 48 45 6e 74 65 ete..[14;26HEnte
< 0x00700: 72 20 55 73 65 72 6e 61 6d 65 3a 20 r Username:
> 0x00000: ff fd 01 ÿý.
> 0x00000: 74 66 74 70 62 61 63 6b 75 70 0d 0a tftpbackup..
< 0x00000: 1b 5b 31 34 3b 31 48 1b 5b 32 4b 1b 5b 31 34 3b .[14;1H.[2K.[14;
< 0x00010: 32 36 48 45 6e 74 65 72 20 50 61 73 73 77 6f 72 26HEnter Passwor
< 0x00020: 64 3a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 1b 5b 31 d: **********.[1
< 0x00030: 34 3b 32 36 48 1b 5b 32 4b 55 73 65 72 6e 61 6d 4;26H.[2KUsernam
< 0x00040: 65 20 6e 6f 74 20 73 65 74 2e e not set.
-_______________________________________________________________________
apreslogin.txt:
rien
Merci de venir à mon secours ;-)
Marsh Posté le 07-06-2013 à 18:18:30
Et en remplaçant
$TELNET->print("\031" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
par
$TELNET->put("\cY" ) or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
vu que le print va envoyer un \n de trop, comme expliqué sur mon second lien.
Ça change quelque chose?
A+,
Marsh Posté le 10-06-2013 à 09:35:49
gilou a écrit : Et en remplaçant |
Bonjour,
Tu as vu juste avec un put("\cY" ) , cela fonctionne impeccable!
Avec le print() javais un retour à la ligne, mais je n'ai pas tilté dessus!
Merci Gilou!!
Marsh Posté le 03-12-2013 à 16:22:24
Bonjour,
Pourrait-tu poster l'intégralité de ton script stp car j'aimerais automatiser certaines taches sur mon parc de switch Avaya et étant débutant en perl, j'ai essayé de m'inspirer de ton code et de beaucoup de "tuto"/forum sur le net mais je galère vraiment au niveau de la connexion telnet et du prompt.
D'avance merci.
Cordialement,
Marsh Posté le 06-12-2013 à 19:44:07
Il n'est pas passé sur le forum depuis cet été. Tu as été voir les liens donnés dans ma première réponse?
A+,
Marsh Posté le 09-12-2013 à 13:49:34
Bonjour,
Oui j'ai été voir mais ca ne m'aide pas vu que j'essaye de faire un script pour des switch Nortel/Avaya.
Je suis convaincu que c'est le prompt qui m'empêche d'aller plus loin et comme je suis débutant en Perl...
Marsh Posté le 09-12-2013 à 14:31:33
Oui, enfin bon, la, tu as toutes les billes, entre ce post et les deux autres pointés.
A+,
Marsh Posté le 07-06-2013 à 11:35:19
Bonjour à tous,
J'aimerai automatiser les sauvegardes automatiques de nos matériels réseaux=> switchs et routeurs.
A cette fin,j''ai créé un script perl qui fonctionne très bien mais là où j'ai un problème ce sont mes switchs qui demandes une authentification (Radius) en plus. Je m'explique, sur les switchs Nortel/avaya sans authentification Radius, une fois la session telnet établie on appuie sur les touche Ctrl+y afin d'accéder au menu du switch,mon script exécute les différents commandes pour la sauvegarde de la config.
Mais concernant les switchs Nortel/avaya avec authentification Radius, une fois la session telnet établie on appuie sur les touces Ctrl+y ensuite une nouvelle une fenêtre nous invite à introduire le User et le Password et c'est à ce niveau que je bloque depuis un certain temps. J'ai comme retour grâce au get() : User name not set!!
Là je suis perdu, le message user name not set, je ne peux l'avoir que si je n'introduis pas de user mais que j'introduis un mot de passe!
Que j'utilise waitfor() ou login() le problème est le même.
Pour info:
une capture de l'écran après q'une session telnet soit établie:
http://imageshack.us/photo/my-images/841/login1h.png/
Une capture d'écran de l'invite radius :
http://imageshack.us/photo/my-images/703/login2f.png/
une capture d'écran du retour du get():
http://imageshack.us/photo/my-images/221/loginet.png/
Je fais appels à vos connaissances et gentillesses afin de résoudre ce petit problème qui me pourri la vie depuis une semaine ;-)
Message édité par Mustaal le 07-06-2013 à 11:42:42