Bonjour à tous,

Je me suis amusé à écrire un script permettant d’effectuer une sauvegarde TFTP de la config d'un switch NORTEL.Cela marche bien , j'ai bien mon fichier config du switch sauvegarder sur mon pc ;-)

Mais j'aimerai faire évoluer mon script afin qu'il prenne durant le lancement du script les arguments $host(ip du switch) & $name(nom du fichier de sauvegarde) , là je bloque un peu concernant à la ligne 26 de mon programme. je ne sais pas comment lui dire/écrire afin qu'il prenne mon argument $name dans la ligne de commande: copy config tftp filename $name adress 192.168.32.199.

Merci d'avance pour votre aide ;-)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
#!/usr/bin/perl
 
use Net::Telnet;
 
$prompt ='/.*[\$#:>\]\%] *$/';  #prend en compte n'importe caractéres du prompt
$host =$ARGV[0];
$name =$ARGV[1];
 
 
$telnet = new Net::Telnet (Timeout => 20, Errmode=>'return');
 
if ($telnet->open($host))
    {
    sleep 1;
    $telnet->waitfor("Enter Ctrl-Y to begin.");
    $telnet->print("\031") or die "=> Echec de l'envoi de Ctrl+Y \n=> ".$telnet->errmsg."";
    sleep 1;
    $telnet->waitfor("IP Configuration/Setup...");
    $telnet->print("c") or die "=> Echec de l'envoi de Maj+C \n=> ".$telnet->errmsg."";
    sleep 1;
    $telnet->waitfor("$prompt");
    $telnet->print("en\n") or die "=> Echec de l'envoi enable \n=> ".$telnet->errmsg."";
    sleep 1;
    $telnet->waitfor("$prompt");
    $telnet->print("copy  config tftp filename $name address 192.168.32.199\n") or die "=> Echec de l'envoi copy config \n=> ".$telnet->errmsg."";
    sleep 1;
    #@result= $telnet->get();
    #$telnet->waitfor("$prompt");
    #print @result;
 
    $telnet->close;
    }
 
else
    {
      print("Impossible d'établir une session\n");
    }