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 :

Réseau Telnet sauvegarde config switch Nortel


Sujet :

Programmation et administration système Perl

  1. #1
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut Réseau Telnet sauvegarde config switch Nortel
    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 . Étant novice en la matière je fais appel à votre gentillesse et à votregrand savoir ;-)
    Voici ci-dessous mon script . Merci d'avance

    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
    #!/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))
    {
    $telnet->cmd("\cY");
    $telnet->cmd("c");
    @Result= $telnet->cmd("show ip");
    print @Result;
    $telnet->cmd("exit");
    $telnet->close;
    }
     
    else
    {
    print("pas de telnet\n");
    }

  2. #2
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    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.

    J'ai adapté mon script mais les commandes des lignes ci dessous me renvoie rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @lines = $telnet->waitfor("show ip");
    print @lines;
    Comment savoir si mes commandes sont bien passées?


    Merci d'avance....

    Voici mon script adapté

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

  3. #3
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut
    Up please.....

  4. #4
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut
    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
    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
     
    #!/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;
    ?

  5. #5
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    La méthode put renvoie 1 si la commande est bien passée. Elle ne renverra donc pas ton ip lorsque tu fais "show ip".
    Tu dois utiliser la commande "cmd" plutôt je dirais (je n'ai jamais utilisé ce module).

  6. #6
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut
    J'avance j'avance ! Mes commandes passent bien, le seul hic c'est que j'ai comme résultat de retour 1. Une idée de la cause??

    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
    #!/usr/bin/perl
     
    use Net::Telnet;
     
    $prompt ='/.*[\$#:>\]\%] *$/';  #prend en compte n'importe caractéres du prompt
    $host ='192.168.32.249';
     
    $telnet = new Net::Telnet (Timeout => 20, Errmode=>'return');
     
    if ($telnet->open($host))
        {
        $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");
        @Result= $telnet->print("show ip") or die "=> Echec de l'envoi de show ip \n=> ".$telnet->errmsg."";
        sleep 1;
        $telnet->waitfor("$prompt");
        print ("@Result\n");
     
        $telnet->close;
        }
     
    else
        {
          print("Impossible d'établir une session\n");
        }

  7. #7
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Citation Envoyé par Mustaal
    Mes commandes passent bien, le seul hic c'est que j'ai comme résultat de retour 1. Une idée de la cause??
    Comme dit dans mon précédent post, ces commandes retournent 1 si elles se sont bien passées : c'est donc normal.

    Encore une fois : si tu utilises la commande "cmd" comme ceci est ce que cela fonctionne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Result= $telnet->cmd("show ip") or die "=> Echec de l'envoi de show ip \n=> ".$telnet->errmsg."";
    sleep 1;
    $telnet->waitfor("$prompt");
    print ("@Result\n");

  8. #8
    Membre à l'essai
    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
    Points : 12
    Points
    12
    Par défaut
    J'ai trouvé le problème j'aurai dû faire une get () :

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $telnet->print("show ip") or die "=> Echec de l'envoi de show ip \n=> ".$telnet->errmsg."";
        @result= $telnet->get();
        $telnet->waitfor("$prompt");
        print @result;
    Là j'ai le résultat de ma commande qui s'affiche à l'écran.....

Discussions similaires

  1. sauvegarde config switch allied 8000s
    Par hacbao dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 07/01/2014, 07h59
  2. Sauvegarde Configuration Switch Nortel
    Par Mustaal dans le forum Programmation et administration système
    Réponses: 13
    Dernier message: 03/06/2013, 15h39
  3. EyesOfNetwork : Sauvegarde config switch possible ?
    Par aalex57 dans le forum Réseau
    Réponses: 0
    Dernier message: 08/03/2012, 17h14
  4. [Telnet] Impossible de me loguer sur un switch nortel :(
    Par nuitn0ire dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 19/01/2010, 17h20
  5. Script MAJ config switch
    Par Rogeur dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 28/01/2008, 11h06

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