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.
Partager