IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Sauvegarde Configuration Switch Nortel


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut Sauvegarde Configuration Switch Nortel
    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");
        }

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Par défaut
    Salut,

    un truc tout bête, t'as essayé ca?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $telnet->print("copy  config tftp filename ".$name." address 192.168.32.199\n") or die "=> Echec de l'envoi copy config \n=> ".$telnet->errmsg."";
    je m'en sors comme ça avec Expect moi

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Honnêtement, je ne vois pas pourquoi ça ne fonctionne pas. Entre guillemet, une variable est instanciee. Il faudrait être sur que c'est bien ça le problème.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Mustaal, peux-tu poster la ligne de commande que tu lances ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Bonjour à tous,

    Désolé pour le retard de ma réponse ;-)
    Cela fonctionne nickle je n'ai rien dû changer au programme, la commande copy passe bien!

    Mon script tourne nickel, je parcours un fichier ligne/ligne (dans chaque lignes on a une ip et un nom) que le script récupère et l'associe à $HOST et $NAME

    Mais j'ai un petit souci quand même ;-)
    Sur certain de mes switchs je dois introduire un nom d'utilisateur et un mot de passe. Et là je n'arrive pas! Mon script et le suivant:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #!/usr/bin/perl
    use Net::Telnet;
     
    ########### DATE & TIME##############################################################################################
    ($sec,$min,$heure,$jour,$mois,$annee)= localtime time;
    $annee+=1900;
    $mois+=1;
     
    ###########OPENING FILE#############################################################################################
    unless (open ($file, "switch.txt")) { die ("cannot open file Switch.txt\n"); } #fichier qui contient les adresses et noms des switchs
    unless (open ($logfile, ">>Log.txt")) { die ("cannot open file Log.txt\n"); } #fichier qui contient les sessions telnet échouées
     
     
    #############Variables################################################################################################
    $PROMPT='/.*[\$#:>\]\%] *$/';  #prend en compte n'importe caractéres du prompt
    $HOST;
    $NAME;
    $TFTPSERVER='10.5.1.53';
    $TELNET = new Net::Telnet (Timeout => 20, Errmode=>'return');
     
     
    while ($line = <$file>)
    	{
    	($HOST,  $NAME) = split(/;/, $line);
     
    		if ($TELNET->open($HOST))
    			{
    				sleep 1;
    				$TELNET->waitfor("Enter Ctrl-Y to begin.");
    				$TELNET->print("\031") or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
    				sleep 1;
    				$TELNET->waitfor("Enter Username: ");
    				$TELNET->print("Dupont\n") or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
    				sleep 1;
    				$TELNET->waitfor("Enter Password: ");
    				$TELNET->print("dupont\n") or die "=> cannot send Ctrl+Y \n=> ".$TELNET->errmsg."";
    				sleep 1;
    				$TELNET->waitfor("IP Configuration/Setup...");
    				$TELNET->print("c") or die "=> cannot send C \n=> ".$TELNET->errmsg."";
    				sleep 1;
    				$TELNET->waitfor("$prompt");
    				$TELNET->print("en\n") or die "=> cannot send enable \n=> ".$TELNET->errmsg."";
    				sleep 1;
    				$TELNET->waitfor("$prompt");
    				$TELNET->print("copy config tftp filename $NAME address $TFTPSERVER\n") or die "=> Echec de l'envoi copy config \n=> ".$TELNET->errmsg."";
    				sleep 1;
    			}
     
    		else
    			{
    		print $logfile ("cannot open session telnet at $jour/$mois/$annee $heure:$min:$sec for $HOST $NAME");
    			}
     
    	}
     
    print $logfile("\n--------------------------------------- $jour/$mois/$annee $heure:$min:$sec ---------------------------------------\n");
    close ($file);  
    close ($logfile);
     
     
    #<>; #Garde la fenêtre ouverte après la fin de l'exécution du script
    Merci encore pour votre précieuse aide!

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Ta question n'est pas claire : où vas-tu chercher les noms d'utilisateur et les mots de passe ?
    Par ailleurs, ton script semble déjà émettre un login et un mot de passe (Dupont et dupont)... du coup, je ne comprends pas si le script que tu publies est celui qui fonctionne nickle et ce que tu attends vraiment ...

Discussions similaires

  1. Réseau Telnet sauvegarde config switch Nortel
    Par Mustaal dans le forum Programmation et administration système
    Réponses: 7
    Dernier message: 14/02/2012, 14h58
  2. Automatisation sauvegardes de switch.
    Par Be Cool dans le forum VBScript
    Réponses: 1
    Dernier message: 10/02/2009, 15h48
  3. Configurer switch hp2524
    Par redman99 dans le forum Hardware
    Réponses: 1
    Dernier message: 06/05/2008, 13h18
  4. configuration switch ASUS
    Par sisina dans le forum Hardware
    Réponses: 1
    Dernier message: 06/03/2008, 07h46
  5. Configuration switch cisco
    Par Aristote dans le forum Développement
    Réponses: 2
    Dernier message: 04/05/2005, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo