Dplacement
darcs-hash:20050831233129-6d78a-2ef5f572a45e3e6178edeca255fbd1159444b780.gz
This commit is contained in:
parent
f3d04aa223
commit
db137d4ca3
5 changed files with 897 additions and 0 deletions
180
surveillance/statistiques.py
Executable file
180
surveillance/statistiques.py
Executable file
|
@ -0,0 +1,180 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- encoding: iso-8859-15 -*-
|
||||
|
||||
###########################
|
||||
# Import des commmandes : #
|
||||
###########################
|
||||
|
||||
import commands
|
||||
import sys
|
||||
from pyPgSQL import PgSQL
|
||||
sys.path.append('/usr/scripts/gestion')
|
||||
from ldap_crans import crans_ldap
|
||||
import smtplib
|
||||
|
||||
###############################
|
||||
# Ouverture des connections : #
|
||||
###############################
|
||||
|
||||
pgsql = PgSQL.connect(host='/var/run/postgresql', database='filtrage', user='crans')
|
||||
pgsql.autocommit = True
|
||||
curseur = pgsql.cursor()
|
||||
mail = smtplib.SMTP('localhost')
|
||||
ldap=crans_ldap()
|
||||
|
||||
|
||||
###########################
|
||||
# Statistiques d'upload : #
|
||||
###########################
|
||||
|
||||
# Adhérents avertis :
|
||||
#####################
|
||||
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()
|
||||
|
||||
for i in range(0,len(hard)):
|
||||
IP=hard[i][0]
|
||||
machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0]
|
||||
hostname = machine.nom()
|
||||
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))
|
||||
|
||||
|
||||
|
||||
# Upload exemptés :
|
||||
###################
|
||||
|
||||
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()
|
||||
|
||||
for i in range(0,len(exemptes)):
|
||||
IP=exemptes[i][0]
|
||||
machine = ldap.search('ipHostNumber=%s' % IP)['machine'][0]
|
||||
hostname = machine.nom()
|
||||
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))
|
||||
|
||||
|
||||
# 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]
|
||||
hostname = machine.nom()
|
||||
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()
|
||||
try :
|
||||
round(traffic[0][0],2)
|
||||
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))
|
||||
|
||||
|
||||
# Machines infectées :
|
||||
######################
|
||||
requete = "SELECT ip_crans FROM avertis_virus WHERE date>timestamp 'now' - interval '1 day'"
|
||||
curseur.execute(requete)
|
||||
infections = curseur.fetchall()
|
||||
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))
|
||||
|
||||
|
||||
# Machines utilisant des protocoles P2P :
|
||||
#########################################
|
||||
requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date>timestamp 'now' - interval '1 day'"
|
||||
curseur.execute(requete)
|
||||
p2p = curseur.fetchall()
|
||||
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))
|
||||
|
||||
|
||||
#############
|
||||
# Message : #
|
||||
#############
|
||||
expediteur = "pessoles@crans.org"
|
||||
destinataire = "disconnect@crans.org"
|
||||
message="""From: %(From)s
|
||||
To: %(To)s
|
||||
Subject: MESSAGE DE TEST : Statistiques des dernières 24h
|
||||
|
||||
Bilan des déconnexions :
|
||||
========================
|
||||
|
||||
|
||||
Machines infectées pour virus :
|
||||
-----------------------------
|
||||
%(liste_virus)s
|
||||
|
||||
|
||||
Machines utilisant des protocoles de pair à pair :
|
||||
------------------------------------------------
|
||||
%(liste_p2p)s
|
||||
|
||||
|
||||
Statistiques d'upload -- download :
|
||||
---------------------------------
|
||||
%(liste_upload)s
|
||||
|
||||
|
||||
Statistiques d'upload -- download des machines exemptées :
|
||||
----------------------------------------------------------
|
||||
%(liste_exemptes)s
|
||||
|
||||
Statistiques d'upload -- download des serveurs :
|
||||
------------------------------------------------
|
||||
%(liste_serveurs)s
|
||||
|
||||
--
|
||||
statistiques.py
|
||||
"""
|
||||
corps = message %{'From':expediteur,
|
||||
'To':destinataire,
|
||||
'liste_upload':liste_upload,
|
||||
'liste_p2p':liste_p2p,
|
||||
'liste_virus':liste_virus,
|
||||
'liste_exemptes':liste_exemptes,
|
||||
'liste_serveurs':liste_serveurs}
|
||||
|
||||
#corps = corps.encode('iso 8859-15')
|
||||
mail.sendmail('pessoles@crans.org','disconnect@crans.org',corps)
|
||||
#print corps
|
Loading…
Add table
Add a link
Reference in a new issue