diff --git a/surveillance/statistiques.py b/surveillance/statistiques.py index 6eedb0f8..c3a7ff06 100755 --- a/surveillance/statistiques.py +++ b/surveillance/statistiques.py @@ -9,8 +9,9 @@ import commands import sys from pyPgSQL import PgSQL sys.path.append('/usr/scripts/gestion') -from ldap_crans import crans_ldap +from ldap_crans import crans_ldap,crans import smtplib +import socket ############################### # Ouverture des connections : # @@ -32,19 +33,15 @@ ldap=crans_ldap() requete = "SELECT ip_crans,sum(upload)/1024/1024 as somme,sum(download)/1024/1024 FROM upload WHERE ip_crans IN (SELECT ip_crans FROM avertis_upload where hard='1' or soft='1') and date > timestamp 'now' - interval '1 day' GROUP BY ip_crans order by somme" curseur.execute(requete) hard = curseur.fetchall() - +liste_upload="" for i in range(0,len(hard)): IP=hard[i][0] - machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0] - hostname = machine.nom() + hostname = socket.gethostbyaddr("%s"%IP)[0] upload = round((hard[i][1]),2) - download=round((hard[i][2]),2) - if i==0 : - liste_upload="%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) - else : - liste_upload=liste_upload+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) - + download = round((hard[i][2]),2) + liste_upload += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) +liste_upload # Upload exemptés : ################### @@ -52,25 +49,24 @@ for i in range(0,len(hard)): requete = "SELECT ip_crans,sum(upload)/1024/1024 AS somme , sum(download)/1024/1024 FROM upload WHERE ip_crans IN ( SELECT ip_crans from exemptes) and date > timestamp 'now' - interval '1 day' GROUP BY ip_crans order by somme" curseur.execute(requete) exemptes = curseur.fetchall() - +liste_exemptes="" for i in range(0,len(exemptes)): IP=exemptes[i][0] - machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0] - hostname = machine.nom() + hostname = socket.gethostbyaddr("%s"%IP)[0] upload=round(exemptes[i][1],2) download=round(exemptes[i][2],2) - if i==0 : - liste_exemptes="%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) - else : - liste_exemptes=liste_exemptes+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) + liste_exemptes=liste_exemptes+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) # Upload des serveurs : ####################### -for i in (10,1,3,4,5,7,8,9,11): - IP='138.231.136.'+str(i) - machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0] + +machines=crans().machines() +liste_serveurs="" +for machine in machines: hostname = machine.nom() + hostname + IP=machine.ip() requete = "SELECT sum(upload)/1024/1024,sum(download)/1024/1024 FROM upload WHERE ip_crans='%s' AND date > timestamp 'now' - interval '1 day' "%IP curseur.execute(requete) traffic=curseur.fetchall() @@ -79,32 +75,19 @@ for i in (10,1,3,4,5,7,8,9,11): except TypeError: print "Pas d'upload ou download" else : - upload=round(traffic[0][0],2) - download=round(traffic[0][1],2) - if i==10 : - liste_serveurs="%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) - else : - liste_serveurs=liste_serveurs+"%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) + liste_serveurs += "%10s%10s\t%s\n"%(str(upload),str(download),str(hostname)) # Machines infectées : ###################### -requete = "SELECT ip_crans FROM avertis_virus WHERE date>timestamp 'now' - interval '1 day'" +requete = "SELECT ip_crans FROM avertis_virus WHERE date>timestamp 'now' - interval '1 hour'" curseur.execute(requete) infections = curseur.fetchall() +liste_virus="" for i in range(1,len(infections)): IP=infections[i][0] - machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0] - hostname = machine.nom() - try : - print len(liste_virus) - except NameError: - liste_virus="%s%s\n"%('--','--') - else : - if i==0 : - liste_virus="%s\n"%(str(hostname)) - else : - liste_virus=liste_virus+"%s\n"%(str(hostname)) + hostname = socket.gethostbyaddr("%s"%IP)[0] + liste_virus+="%s\n"%(str(hostname)) # Machines utilisant des protocoles P2P : @@ -112,20 +95,12 @@ for i in range(1,len(infections)): requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date>timestamp 'now' - interval '1 day'" curseur.execute(requete) p2p = curseur.fetchall() +liste_p2p="" for i in range(0,len(p2p)): IP=p2p[i][0] protocole = p2p[i][1] - machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0] - hostname = machine.nom() - try : - print len(liste_p2p) - except NameError: - liste_p2p="%s%20s\n"%('--','--') - else : - if i==0 : - liste_p2p="%9s\t%s\n"%(str(protocole),str(hostname)) - else : - liste_p2p=liste_p2p+"%9s\t%s\n"%(str(protocole),str(hostname)) + hostname = socket.gethostbyaddr("%s"%IP)[0] + liste_p2p+="%9s\t%s\n"%(str(protocole),str(hostname)) ############# @@ -176,5 +151,5 @@ corps = message %{'From':expediteur, 'liste_serveurs':liste_serveurs} #corps = corps.encode('iso 8859-15') -mail.sendmail('pessoles@crans.org','disconnect@crans.org',corps) -#print corps +#mail.sendmail('pessoles@crans.org','disconnect@crans.org',corps) +print corps