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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| def MyTimer(isOpen,tempo = float(time)):
#si linux
if sys.platform == "linux2":
lPing = subprocess.Popen(["ping","-c", "1 ", ip ],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
elif sys.platform == "win32":
lPing = subprocess.Popen(["ping","-n", "1 ", ip ],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
sLigne, erreur = lPing.communicate()
print sLigne
#si linux
if sys.platform == "linux2":
info_reg = info_reg = re.search(r'(\d+) packets transmitted',sLigne,re.M)
transmis = int(info_reg.group(1))
info_reg = info_reg = re.search(r'(\d+) received',sLigne,re.M)
received = int(info_reg.group(1))
info_reg = info_reg = re.search(r'(\d+)% packet loss',sLigne,re.M)
loss = int(info_reg.group(1))
info_reg = info_reg = re.search(r'time (\d+)ms',sLigne,re.M)
time = int(info_reg.group(1))
now = datetime.datetime.now()
#si l'expression régulière a donné un résultat
if transmis > 0:
isDown = False
if received == 0:
isDown = True
#si le serveur répond après avoir été down et qu'il y a un fichier à uploader alors upload
#recupere les parametres du fichier
if isDown == 'False':
isOpen = False
if(os.path.exists(pathLoc) and os.path.getsize(pathLoc) > 0):
transport = paramiko.Transport((ip, port))
transport.connect(username = user, password = passwd)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(pathLoc,pathServ)
sftp.close()
transport.close()
#print 'Upload done.'
os.remove(pathLoc) #supprime fichier
else:
if(received == 0 and isOpen == False):
print now.strftime("%d/%m/%YT%H:%M:%S")
fen_matricule(racine)
isOpen = True
else:
received = 0
if(received == 0 and isOpen == False):
print now.strftime("%d/%m/%YT%H:%M:%S")
fen_matricule(racine)
isOpen = True
threading.Timer(tempo, MyTimer, [isOpen,tempo]).start()
def fen_matricule(racine):
fond=Tkinter.Canvas(racine, width=300, height=200, background='darkgray')
fond.pack()
texte=Tkinter.Label(fond, text="Matricule", fg="black")
texte.pack(side=Tkinter.LEFT)
valsaisir=Tkinter.StringVar() #variable to get value
saisie=Tkinter.Entry(textvariable=valsaisir, width=30)
saisie.pack()
bouton=Tkinter.Button(racine, text="OK", command=lambda: save(valsaisir.get(),racine,saisie)).pack(side=Tkinter.BOTTOM)
"""
bouton=Tkinter.Button(racine, text="Quitter", command=racine.quit)
bouton.pack(side=Tkinter.BOTTOM)
"""
racine.mainloop()
MyTimer(isOpen,float(time)) |
Partager