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

Réseau/Web Python Discussion :

Passage d'information entre fonction


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 42
    Points
    42
    Par défaut Passage d'information entre fonction
    Bonsoir

    Je débute un projet dont l'objectif est de réaliser des ping régulièrement vers un nombre d'important d'adresses.

    A terme je souhaite que la liste des adresses figure dans un fichier et que les résultats se s'enregistrent dans une arborescence spécifique.

    Les ping sont exécutés à partir d'un serveur et je souhaiterai réaliser plusieurs fonctions :
    • l'une étant la connexion à mon serveur en SSH
    • la réalisation des ping
    • l'archivage dans des fichiers.


    je suis au début de mon projet et je suis confronté à la problématique suivante : incapacité de transférer une information particulière d'une fonction à une autre.

    ci dessous mon script

    je déclare dans ma fonction sshConnect "client" que je souhaite réutiliser pour l'envoi de mes commandes au sein d'autres fonctions.
    Est-ce réalisable ?

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    import time
    import paramiko
    import datetime
     
    #fonction permettant la connection en SSH au serveur
     
    def sshConnect(destination, ip):
     
            client = paramiko.SSHClient()
            client.load_system_host_keys()
            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            client.connect('xxx.xxx.xxx.xxx', username='xxxxxxx', password='xxxxxxx')
     
    #fonction permettant le lancement de ping & la récupération de la ligne de résultat
     
    def sshPing(destination, ip):
        try:
     
            print(str(ip))
            command = "ping -c 1 " + str(ip) # + " > /dev/null 2>&1" 
            response = 0
            (stdin, stdout, stderr) = client.exec_command(command)
            value = 1
     
            for line in stdout.readlines(): #read().splitlines():
                #print (line)
                #print (len(line))
                if value == 2:
                    print(line)
                    fichier = open("C:/Python/test/data.txt","a")
                    #line = str(stdout.readline())
                    fichier.write(str(datetime.datetime.now()) + " " + line)
                    fichier.close
                    value = value + 1
                else:
                   print("++++++++++ ligne " + str(value))
                   value = value + 1
     
     
     
        finally:
            client.close()
     
    sshConnect('xxxxx.xxxx.xxx.xxx', 'xxxxx.xxxx.xxx.xxx')
    sshPing('xxxxx.xxxx.xxx.xxx ', 'xxxxx.xxxx.xxx.xxx')



    En outre, souhaitant réaliser plusieurs ping simultanément je suis preneur de tout conseil sur le processus le plus adapté.
    l'intervalle entre chaque Ping n'a pas été défini pour le moment. il sera adaptable dans l'outil.

    Par avance merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par raphael75015 Voir le message
    je déclare dans ma fonction sshConnect "client" que je souhaite réutiliser pour l'envoi de mes commandes au sein d'autres fonctions.
    Est-ce réalisable ?
    Une fonction peut retourner un objet (ici client). que vous pouvez utiliser ailleurs.
    Mais franchement, comme c'est une utilisation basique des fonctions, soit votre question est mal formulée, soit il va falloir vous résoudre à ouvrir un tuto pour apprendre les bases.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 86
    Points : 42
    Points
    42
    Par défaut
    bonsoir

    au regard de votre réponse, je me suis résolu à refaire des tests précédemment réalisés et je suis parvenu à réaliser ce que je voulais pour l'instant.

    une solution est de déclarer "client" en Global

    je vous en remercie mais ne comprends pas l'échec antérieur à moins d'une erreur de ma part.

    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2011, 01h59
  2. [Theorie] Passage des informations entre les redolog et les tbs undo
    Par lecharcutierdelinux dans le forum Administration
    Réponses: 10
    Dernier message: 07/06/2007, 09h11
  3. passage d'information entre deux pages
    Par hamham dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 30/01/2007, 16h36
  4. Passage de pointeurs entre fonctions
    Par mickael.be dans le forum Langage
    Réponses: 3
    Dernier message: 02/01/2006, 21h01
  5. Passage d'information entre deux fenêtres
    Par kuuya dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/08/2005, 14h35

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