From 396518f381bca590cd5743032f2a289038315f13 Mon Sep 17 00:00:00 2001 From: chove Date: Mon, 5 Dec 2005 23:36:13 +0100 Subject: [PATCH] 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 --- surveillance/analyse.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/surveillance/analyse.py b/surveillance/analyse.py index 5c1e3dba..089f7f92 100755 --- a/surveillance/analyse.py +++ b/surveillance/analyse.py @@ -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)