#!/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;