#!/usr/bin/perl use Net::Telnet; $serveur_tftp = 'x.x.x.x'; our $switchlist_nortel_conf = "nortel.txt"; our @devices_nortel; open(FILEHANDLER, "<$switchlist_nortel_conf") or die "ERREUR : $switchlist_nortel_conf n'existe pas !\n"; while () { next if (/^\n$/); next if (/^#/); chomp; push (@devices_nortel, $_); } close(FILEHANDLER); foreach $switch_nortel_conf (@devices_nortel) { &Recup_nortel; } sub Recup_nortel { @switch_nortel_details = split(/ /, $switch_nortel_conf); $prompt = qw(/\>/); $out_log='log/Out_Log_'.@switch_nortel_details[1].'.txt'; $in_log='log/In_Log_'.@switch_nortel_details[1].'.txt'; $dump_log='log/Dump_Log_'.@switch_nortel_details[1].'.txt'; $t= new Net::Telnet (Timeout=>55, Errmode=>'return', Dump_log=>$dump_log, Input_log=>$in_log, Output_log=>$out_log, prompt=>$prompt ); $t->open(@switch_nortel_details[0]) or die $t->errmsg;; print ("DEBUG : Connexion effectuée\n"); print ("DEBUG : Envoi de Ctrl-Y \n"); $var_0=chr(25); @ctrly=$t->print($var_0) or die $t->errmsg; print ("DEBUG : Envoi du login => @switch_nortel_details[3]\n"); $t->waitfor('/Username:/i'); $var_1="@switch_nortel_details[3]"; @login=$t->print($var_1) or die $t->errmsg; print ("DEBUG : Envoi du password => @switch_nortel_details[2]\n"); $t->waitfor('/Password:/i'); $var_2="@switch_nortel_details[2]"; @password=$t->print($var_2) or die $t->errmsg; print ("DEBUG : Selection de la ligne de commande (envoi de Maj+C) \n"); $var_3=chr(67); @majc=$t->print($var_3) or die $t->errmsg; print ("DEBUG : Envoi de enable\n"); $t->cmd("enable") or die $t->errmsg; print ("DEBUG : Envoi de copy running-config tftp address $serveur_tftp filename @switch_nortel_details[1]\n"); $t->cmd("copy running-config tftp address $serveur_tftp filename @switch_nortel_details[1]"); #or die $t->errmsg; print ("DEBUG : Envoi de close\n"); $t->close or die $t->errmsg; return 1; } exit; #### Ethernet Switch 470-24T HW:07 FW:3.6.0.7 SW:v3.7.0.04 ISVN:2 Username: [ ] [ *************** ] Enter Username: julian@tri-srv-jh:~/telnet$ Enter text, press or when complete. #### julian@tri-srv-jh:~/telnet$ cat log/Out_Log_470_BS9.txt mylogin mypassword C enable copy running-config tftp address x.x.x.x filename 470_BS9 #### DEBUG : Connexion effectuée DEBUG : Envoi de Ctrl-Y DEBUG : Envoi du login => mylogin DEBUG : Envoi du password => mypassword DEBUG : Selection de la ligne de commande (envoi de Maj+C) DEBUG : Envoi de enable DEBUG : Envoi de copy running-config tftp address x.x.x.x filename 470_BS9 DEBUG : Envoi de close