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 :

QUestion sur le module telnet


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut QUestion sur le module telnet
    Bonsoir,

    je debute en programmation perl et je suis en train d'ecrire un script permettant la mise a jour de firmware sur une serie de switch.
    Pour cela j'utilise le module telnet et j'execute des commandes sur le switch certaine commandes entraine une question afin de confirmer un choix (dans le style : Do you want to continue?[Y/N])
    je souhaiterais que mon script puisse pouvoir repondre "Y" ou "N" automatiquement

    est ce possible de realiser ce type d'action en perl , si oui peut on me mettre sur la voie.

    d'avance merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu peux probablement le faire en modifiant le "prompt" à reconnaître.

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    j'ai essayé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    my $prompt ='/.*[\$#:>\]\%] *$/';
    my $username = "xxxxxx";
    my $passwd = "xxxxx";
     
    $telnet = new Net::Telnet (Timeout => 120, Prompt => $prompt);
    $telnet->open(Host => $host);
    $telnet->login($username, $passwd); 
     
    print "Telechargement du fichier de configuration ....\n";
    $telnet->cmd("tftp 10.0.0.5 get config.cfg");
    $telnet->waitfor("Do you want to continue?[Y/N]");
    $telnet->print("Y");
    print "Terminé\n\n";
    mais il me met une erreur sur le waitfor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    missing opening delimiter of match operator in argument "Do you want to continue?[Y/N]" given to Net::Telnet::waitfor() at ./testperl.pl line 12
    j'ai essayer avec cette synthaxe ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $telnet->waitfor("/^Do you want to continue?[Y/N] */");
    mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bad match operator: Unmatched [ in regex; marked by <-- HERE in m/Do you want to continue?[ <-- HERE Y/ at ./testperl.pl line 12
    est bien comme cela que l'on modifie le prompt ?

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    C'est à cause du "[Y/N]", il le prend pour une classe de caractère, mais avec le / qui finit la regexp... Bref ça ne lui plait pas du tout, je te mets une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $telnet->waitfor('/Do you want to continue *\?\[Y\/N\] */');
    Par ailleurs je ne suis pas sûr du tout que tu puisses utiliser cmd() et waitfor() comme ça, il vaut mieux n'utiliser que print() et waitfor() pour plus de sûreté.

    --
    Jedaï

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    merci Jedai ca fonctionne de ce coté par contre tu a parlé de probleme si on utilise cmd() et waitfor() ensemble peux tu etre plus precis car il s'avere que j'ai des problemes pour executé une commande , la connexion fonctionne , j'arrive bien sur le prompt de mon serveur telnet mais les commande ne s'execute pas, cela dis j'ai le meme probleme en utilisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tel->print("ma commande");.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    c'est bon mes commandes s'execute bien par ailleurs je n'arrive toujours pas a repondre a une question automatiquement existe t-il une autre methode que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $telnet->waitfor("/^Do you want to continue?[Y/N] */");
    $telnet->print("Y");
    j'ai entendu parler du module expect mais je ne trouve pas d'exemple ressemblant a mon cas

Discussions similaires

  1. Question sur le module DBI
    Par Jasmine80 dans le forum SGBD
    Réponses: 1
    Dernier message: 26/01/2009, 16h27
  2. Question sur le module Write::Excel
    Par baloo81 dans le forum Modules
    Réponses: 2
    Dernier message: 17/07/2008, 16h11
  3. Petite question sur les modules
    Par cassis2k dans le forum Modules
    Réponses: 4
    Dernier message: 22/11/2007, 15h20
  4. Questions sur le module CSV
    Par Bogey Jammer dans le forum Général Python
    Réponses: 1
    Dernier message: 03/09/2007, 11h57

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