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:
parent
9567c6f50c
commit
396518f381
1 changed files with 18 additions and 4 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue