ajout de la dure d'analyse (par dfaut 24 heures), ca permet de mettre un

peu plus quand on trouve pas ce qu'on veut dans l'analyse sur juste les 24
dernires heures

darcs-hash:20051205223613-4ec08-2b877a62c2a7aa543f1e68a59ab4c27c82ff1df6.gz
This commit is contained in:
chove 2005-12-05 23:36:13 +01:00
parent 9567c6f50c
commit 396518f381

View file

@ -7,7 +7,7 @@ from pyPgSQL import PgSQL
sys.path.append('/usr/scripts/gestion/')
from affich_tools import tableau_ng
def stats (ip_crans, group=['ip_ext','port_crans','port_ext'], upload_mini=0, limit=10) :
def stats (ip_crans, group=['ip_ext','port_crans','port_ext'], upload_mini=0, limit=10, heures=24) :
"""
Retourne une chaine de caratères formatée avec le tableau de statistiques
d'upload de l'ip fourni
@ -57,7 +57,7 @@ def stats (ip_crans, group=['ip_ext','port_crans','port_ext'], upload_mini=0, li
# requete dans la base
######################
requete = "SELECT * from ( SELECT %s FROM upload WHERE ip_crans='%s' AND date > timestamp 'now' - interval '1 day' GROUP BY %s ORDER BY upload DESC ) AS resultat_intemediaire WHERE upload>='%d' LIMIT %d;" % (','.join(select), ip_crans, ','.join(group), upload_mini*1024*1024, limit)
requete = "SELECT * from ( SELECT %s FROM upload WHERE ip_crans='%s' AND date > timestamp 'now' - interval '%d hours' GROUP BY %s ORDER BY upload DESC ) AS resultat_intemediaire WHERE upload>='%d' LIMIT %d;" % (','.join(select), ip_crans, heures, ','.join(group), upload_mini*1024*1024, limit)
pgsql = PgSQL.connect(host='/var/run/postgresql', database='filtrage', user='crans')
curseur = pgsql.cursor()
@ -92,6 +92,8 @@ Option fait partie des options suivantes :
par défaut : -p ip_ext -p port_crans -p port_ext
-u # : ne prend quee les entrées ou l'upload est supérieur à #
par défaut : 0
-t # : nombre d'heures à analyser
par défaut : 24
Exemples :
sudo /usr/scripts/surveillance/analyse.py bilou.crans.org"""
@ -107,7 +109,7 @@ Exemples :
# parsage des arguments
#######################
try :
opts, args = getopt.getopt(sys.argv[1:],'g:l:u:')
opts, args = getopt.getopt(sys.argv[1:],'g:l:u:t:')
except getopt.GetoptError,message :
print message
sys.exit(4)
@ -154,6 +156,18 @@ Exemples :
sys.exit(4)
break
# durée pour laquelle on compte l'upload
########################################
heures = 24
for key,value in opts :
if key == '-t' :
try :
heures = int(value)
except :
print 'Le nombre d\'heures doit être un entier'
sys.exit(4)
break
# groupements
#############
group = [ x[1] for x in opts if x[0] == '-g' and x[1] in ['ip_ext','port_crans','port_ext'] ]
@ -163,4 +177,4 @@ Exemples :
# affichage du résultat
#######################
print stats(ip_crans, group, upload_mini, limit)
print stats(ip_crans, group, upload_mini, limit, heures)