Bonjour fredericmazue,
comment vas-tu?
T'as vu la tête à Sarkozy ce matin aux nouvelles, il avait l'air étourdie : ), je comprends ton empressement à vouloir tourner la page quand on parle de lui (hahaha!), disons je suis pas trop impressioné par le bonhomme hahaha, en plus c'est un ppp(partenaria public privé), vont tous nous appauvrir avec leurs manigeances, je commence à croire en la théorie de la conspiration (voir : The Bilderberg group) ! il a traité son attaché de presse d'imbécile durant son entrevue avec CBS(60 minutes) mais ne t'en fait pas à défaut d'avoir Sarkozy, on a eu Jean Chrétien : )
bon, je retourne à mes moutons...
J'ai presque terminé mon script :D ,
Le script ci-dessous me permet d'entrer mon IP primaire et mes IP secondaires. Ensuite, le ping démarre et tous les pertes de paquets
plus grand que 2% vont ds un fichier: ('c:/tmp/myprimarylogs.xls','w')
Le hic, c'est que je veux ce roulement de ping pour une période de 24 heures et ce, à chaque minute. Malheureusement, ce script ne performe ce ping qu'une seule fois pour toutes les IP et s'arrête ensuite à :
("# Enter Primary IP: ").
Bien entendu, je ne veux pas ce raw_input ("# Enter Primary IP: ").
Tu peux identifier la/les sources de l'erreur ?
Voici mon script ds sa totalité:
import re import time import thread import os import sys f=open('c:/tmp/primaryip.xls','w') f.close() g=open('c:/tmp/workfile.txt','w') g.close() h=open('c:/tmp/myprimarylogs.xls','w') h.close() j=open('c:/tmp/secip.xls','w') j.close() def validIP(ipAdd): ipRegex = r"^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$" re_ip = re.compile(ipRegex) return re_ip.match(ipAdd) def validIP1(ipAdd1): ipRegex = r"^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$" re_ip = re.compile(ipRegex) return re_ip.match(ipAdd1) def fil(data): patt = re.compile(r'\((\d+)% loss\)') patt1 = re.compile(r'(\d+.\d+.\d+.\d)') for line in data.split('\n'): if line.startswith("Ping statistics for"): ip = patt1.search(line).group(1) if patt.search(line): loss_num = int(patt.search(line).group(1)) if loss_num >= 2 : s = open('c:/tmp/myprimarylogs.xls', 'a+') s.write("%s '%s'\n" % (loss_num, ip)) s.close() # if loss >= 2, return False - then secondary IPs are pinged print 'loss_num is >= 2 ', loss_num return False else: print 'loss_num is < 2,', loss_num return True def ping(*fnames): g = open(fnames[0], 'w') for fn in fnames[1:]: f=open(fn, 'r') ipList = [line.strip() for line in f.readlines()] f.close() resList = [] for ipAdd in ipList: pingaling =os.popen("ping %s" %(ipAdd),"r") data = pingaling.read() resList.append(data) # if loss > 2, ping secondary IPs proceed = fil(data) if proceed: break g.write('/n'.join(resList)) if proceed: break g.close() def get_IPs(fnP, fnS): while True: ipAddP = raw_input("# Enter Primary IP: ") if validIP(ipAddP): f = open(fnP, 'w') f.write(ipAddP.strip() + "\n") f.close() break else: print "Invalid IP." ipList = [] while True: while True: ipAddS = raw_input("# Enter Secondary IP: ") if validIP(ipAddS): ipList.append(ipAddS.strip()) break else: print "Invalid IP" s = raw_input("# Enter another IP? Y/N: " ) if s.upper() == "N": f = open(fnS, 'w') f.write('\n'.join(ipList)) f.close() break fnP = 'c:/tmp/primaryip.xls' fnS = 'c:/tmp/secip.xls' fnW = 'c:/tmp/workfile.txt' get_IPs(fnP, fnS) ping(fnW, fnP, fnS) def main(): the_time = time.time() start_time = the_time end_time = the_time + (60*60*24) # 24 hrs get_IPs(fnP, fnS) while the_time < end_time: ping(fnW, fnP, fnS) time.sleep(60) # wait 60 seconds the_time = time.time() # get the new time if __name__ == "__main__": main()