Perl automatiser Telnet sur switch Nortel

Fermé
mustaal - 8 févr. 2012 à 13:48
 mustaal - 10 févr. 2012 à 14:41
Bonjour à tous,

J'aimerai concevoir un script perl qui me permet de réaliser une session Telnet et ensuite de pouvoir exécuter des commandes notamment 'copy tftp'. Étant novice en la matière je fais appel à votre gentillesse et à votre grand savoir ;-)
Pour préciser lorsqu'on fait un telnet sur un switch Nortel on doit en premier lieu taper 'CRTL+ Y' ensuite on tombe sur un menu et là on doit taper 'c' pour arriver enfin en commande line.

Voici mon script
#!/usr/bin/perl
 
use Net::Telnet;
 
 
######################### DATE #######################################
$annee = 1900 + (localtime(time))[5]; # Nombre d'annee depuis 1900#
$jour = (localtime(time))[3];                 # [1,2,3,4-31]      #
$mois = (localtime(time))[4]+1;               # Janvier=0         #
######################################################################
 
$iptftp='192.168.32.17';
$prompt ='/.*[\$#:>\]\%] *$/';
$host ='192.168.32.249';
$telnet = new Net::Telnet (Timeout => 20, Prompt => $prompt, Errmode=>'return');
 
if ($telnet->open($host))
{
print("telnet reussi\n");
$telnet->waitfor("\cY");
print("CTRL Y reussi\n");
$telnet->waitfor("c");
print("C  reussi\n");
@lines = $telnet->waitfor("show ip");
print @lines;
#$telnet->cmd("exit");
$telnet->close;
}
 
else
{
print("pas de telnet\n");
}


D'avance merci!
A voir également:

2 réponses

UP! please....
0
Bonjour ,
j'ai encore travaillé sur mon script mais le resultat qui me donne c'est toujours 1 ! Avez vous une idée d'où pourrait venir le problème

#!/usr/bin/perl

use Net::Telnet;

$prompt ='/.*[\$#:>\]\%] *$/';
$host ='192.168.32.249';
$t= new Net::Telnet (Timeout=>25,
Errmode=>'return',
prompt=>$prompt
);
$t->open($host);
@lines=$t->put("^Y") or die "=> Echec de l'envoi de Ctrl+Y \n=> ".$t->errmsg."";
print "@lines\n";
sleep 2;
@lines=$t->put("c") or die "=> Echec de l'envoi de Maj+C \n=> ".$t->errmsg."";
print "@lines\n";
sleep 2;
@lines= $t->put("enable") or die "=> Echec de l'envoi de enable \n=> ".$t->errmsg."";
print "@lines\n";
sleep 2;
@lines=$t->put("show ip") or die "=> Echec de l'envoi de show ip \n=> ".$t->errmsg."";
print "@lines\n";
$t->close;
0