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 :

Paramiko, exec_command récupèrer le flux de sortie en continu


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Par défaut Paramiko, exec_command récupèrer le flux de sortie en continu
    Bonjour à tous,

    Je sèche sur un script Python. J'ai créer un script python qui pour une IP donné va se connecter via Paramiko à un serveur pour éxécuter un autre script Python.

    Voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    self._client = paramiko.SSHClient()
    self._client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    self._client.connect(self._ip, username=self._server['username'], password=self._server['password'])
    channel = self._client.get_transport().open_session()
    channel.exec_command('python3 /tmp/scrap.py /tmp/' + self._ip + '.txt 0 1')
    Le script "scrap.py" renvoie tous les X secondes une ligne dans la console de la machine distante, mais je n'arrive pas à récupèrer au fur et à mesure ces lignes dans le script ci dessus (à la sortie de exec_command(...)).

    Est ce possible, si oui avez vous une idée de comment faire ?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    un truc du genre fonctionne pour moi avec py2, consiste à "transformer" le canal ssh en fichier et à lire dedans ensuite tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    channel = client.get_transport().open_session()
    channel.exec_command(...)
    filehandler = channel.makefile()
    while True:
       rl, wl, xl = select.select([channel],[],[],0.0)
       if len(rl) > 0:
          line = filehandler.readline().rstrip()
          # do the job

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/05/2009, 15h53
  2. Récupérer le flux de sortie d'un programme en ANSI
    Par Madeline dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2009, 13h27
  3. Réponses: 1
    Dernier message: 17/03/2009, 10h13
  4. Récupérer le flux de sortie d'ne jsp
    Par bibou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 13/02/2008, 17h41
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

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