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

Python Discussion :

SSH paramiko et message d'erreur


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut SSH paramiko et message d'erreur
    Bonjour,

    Tout d'abord je suis débutant, d'aujourd'hui sur python.

    J'ai à créer un script pour me connecter en SSH sur plusieurs serveurs pour y exécuter la même commande.
    Je souhaiterais récupérer les éventuels messages d'erreur générés par cette ligne de commande (exécutée sur une machine distante) pour les enregistrer dans un fichier de log que j'ai créé (sur ma machine, local).
    pour exécuter ma commande j'ai cette instruction:

    stdin, stdout, stderr = ssh.exec_command(cmd)

    J'imagine que je dois utiliser le stderr, mais je ne comprends comment celui-ci fonctionne

    merci de votre aide

    willou

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    essaye fabric, ça devrait répondre à ton besoin.

    Bon python

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    merci pour ta réponse, mais l'usage de paramiko (et seulement) est imposé comme une norme de codage

    j'ai un peu avancé dans ma réflexion

    ma ligne stdin, stdout, stderr = ssh.exec_command(cmd)

    se trouvant dans une boucle, ces trois éléments sont-ils écrasés à chaque itérations?

    si c'est le cas, n'est-ce pas possible de faire un truc du genre:

    logFile.write(stderr)

    ?

    de façon général, je pense ne pas bien comprendre en quoi consiste stdin, stdout et stderr dans la ligne de code ci-dessus.

  4. #4
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    se trouvant dans une boucle, ces trois éléments sont-ils écrasés à chaque itérations?
    Ben oui*!

    de façon général, je pense ne pas bien comprendre en quoi consiste stdin, stdout et stderr dans la ligne de code ci-dessus.
    Ce sont des pseudo-fichiers (des sous-classes d’IOBase, voir le module io), “ouverts” en écriture pour stdin, et en lecture pour stdout et stderr… Donc faut utiliser la même syntaxe qu’avec les objets renvoyés par open()*:


  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    merci beaucoup de votre aide

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    nouveau problème

    mon script doit exécuter une commande sur plusieurs serveurs distant dont les adresses ip se trouvent dans un fichier que je parcours

    dans ma boucle sur les IP j'ai ça:
    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
     
     try:
          sshc = paramiko.SSHClient()
          sshc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
          sshc.connect(hostname=currentIP, username='root', password= passwd)
     
     
          cmd = "ls -l"
          stdin, stdout, stderr = sshc.exec_command(cmd)
          sshc.close()
    #write in the log file result from the command NTP
          scriptLog.write(stderr.read()+'\n')
    #SSH connexion excpection handling
      except paramiko.AuthenticationException:
          scriptLog.write("AuthenticationException\n")
      except paramiko.BadHostKeyException:
          scriptLog.write("BadHostKeyException\n")
      except paramiko.ChannelException:
          scriptLog.write("ChannelException\n")
    j'ai le en plantage :

    No handlers could be found for logger "paramiko.transport"

    qui intervient au moment du sshc.exec_command(cmd)

    Petite précision, si je ne met dans la liste des adresses IP seulement l'adresse ip de la machine sur laquelle j'exécute le script (un peu con con, mais c'est pour le test) je n'ai aucune erreur.

    D'après ce que j'ai vu sur le net, ça ressemble à un bug de paramiko mais le pb c'est que je n'ai pas trouvé de correctif

    merci de votre aide

Discussions similaires

  1. Message d'erreur inconnu connexion ssh
    Par SupraPF dans le forum Langage
    Réponses: 9
    Dernier message: 26/06/2015, 11h22
  2. Erreur "new key" ssh paramiko
    Par Leniouns dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 05/09/2012, 13h14
  3. message d'erreur sur Net::SSH et Net::SCP
    Par dm.mya dans le forum Langage
    Réponses: 0
    Dernier message: 11/05/2012, 15h52
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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