+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Inscrit en
    février 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 6
    Points : 0
    Points
    0

    Par défaut le module fabric de python

    bonjour je suis un debutant en python et apres avoir fait des recherches sur internet j'ai trouver le script suivant qui fait presque le meme travail de la commande linux tail -f:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import os,time
     
    def g_tail(f):
        f.seek(0,2)#goto end
        while True:
            line=f.readline()
            if not line:
                time.sleep(0.001)
            else:
                yield line
     
     
    for line in g_tail(open('/var/log/auth.log','r')):
        print( line)
    tout marche bien on local
    et lorsque je me conecte a partir d'une autre machine et j'execute se script encore tout marche tres bien
    mais moi je veux automatiser cette derniere tache(la connexion avec ssh et le lancemant de script) pour cela j'ai trouve un module python qui s'appele fabric voila le code que j'ai utilise:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    from __future__ import with_statement
    from fabric.api import *
    from fabric.contrib.console import confirm
    env.hosts = ['localhost']
     
    def deploy():
        with show('running', 'stdout', 'stderr'):
            run('python /home/script1.py')
    mais lorsque une ligne est ajoute au fichier log auth.log rien ne s'affiche
    merci pour votre aide

  2. #2
    Membre habitué
    Inscrit en
    avril 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 103
    Points : 130
    Points
    130

    Par défaut

    Si j'ai bonne mémoire, l'opération run de fabric attend la fin de l'exécution de la commande pour afficher le stdout/stderr or la commande exécutée par run boucle infiniment ...

    Il faudrait implémenter une opération "iterrun" qui affiche le stdout/stderr au fil de l'exécution de la commande. Celle-ci a peut-être été codé dans un fork/extension de fabric.

    Après ça dépend du besoin exact, sh fait très bien du tail distant

  3. #3
    Invité de passage
    Inscrit en
    février 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Il faudrait implémenter une opération "iterrun" qui affiche le stdout/stderr au fil de l'exécution de la commande. Celle-ci a peut-être été codé dans un fork/extension de fabric.
    tout d’abord merci pour la réponse
    est-ce-que vous pouvez m'indiquer où a été codé cette extension car j'en ai vraiment besoin pour un projet

  4. #4
    Membre habitué
    Inscrit en
    avril 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 103
    Points : 130
    Points
    130

    Par défaut

    Citation Envoyé par ZZelle Voir le message
    Celle-ci a peut-être été codé dans un fork/extension de fabric.

  5. #5
    Invité de passage
    Inscrit en
    février 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par ZZelle Voir le message
    Celle-ci a peut-être été codé dans un fork/extension de fabric.
    est-ce-que vous pouvez m'indiquer où exactement ?

  6. #6
    Membre habitué
    Inscrit en
    avril 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 103
    Points : 130
    Points
    130

    Par défaut

    le "peut-être" sous-entendait que ça pouvait être aussi "peut-être pas", à toi de chercher.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •