[surveillance/] Migration de pgsql

Et passage rapide en UTF-8 parce que c'est mieux pour les requetes envoyees
a PostGreSQL ...

darcs-hash:20090421142755-ddb99-5540951e07f5d88c0ccff940b6fb9862c8c24b07.gz
This commit is contained in:
Michel Blockelet 2009-04-21 16:27:55 +02:00
parent 94a780c50b
commit ca191d8a27
4 changed files with 60 additions and 59 deletions

View file

@ -2,13 +2,13 @@
# -*- coding: iso-8859-15 -*- # -*- coding: iso-8859-15 -*-
""" """
Script de déconnection automatique des machines du crans pour les raisons : Script de déconnection automatique des machines du crans pour les raisons :
- upload - upload
- p2p - p2p
- flood - flood
- virus - virus
Copyright (C) Xavier Pessoles, Étienne Chové, Vincent Bernat, Nicolas Salles Copyright (C) Xavier Pessoles, Étienne Chové, Vincent Bernat, Nicolas Salles
Licence : GPL v2 Licence : GPL v2
""" """
@ -25,8 +25,8 @@ import smtplib
from ldap_crans import crans_ldap from ldap_crans import crans_ldap
from ldap_crans import MachineWifi from ldap_crans import MachineWifi
from time import * from time import *
import locale #import locale
locale.setlocale(locale.LC_TIME, 'fr_FR') #locale.setlocale(locale.LC_TIME, 'fr_FR')
import lock import lock
sys.path.append('/usr/scripts/surveillance/fiche_deconnexion') sys.path.append('/usr/scripts/surveillance/fiche_deconnexion')
from generate import generate_ps from generate import generate_ps
@ -39,7 +39,7 @@ ldap = crans_ldap()
def machine_online(machine): def machine_online(machine):
""" """
Retourne True si la machine est connectée au réseau et False si elle ne l'est pas Retourne True si la machine est connectée au réseau et False si elle ne l'est pas
""" """
# Les machines wifi sont toujours online # Les machines wifi sont toujours online
if isinstance(machine, MachineWifi): if isinstance(machine, MachineWifi):
@ -50,14 +50,14 @@ def machine_online(machine):
# Variables utiles # Variables utiles
################## ##################
# Création d'une chaine qui ressemble à : # Création d'une chaine qui ressemble à :
# (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22')) # (ip_src<<=inet('138.231.136.0/21') or ip_src<<=inet('138.231.148.0/22'))
ip_src_in_crans = '(%s)' % ' or '.join([ "ip_src<<=inet('%s')" % net for net in NETs['all'] ]) ip_src_in_crans = '(%s)' % ' or '.join([ "ip_src<<=inet('%s')" % net for net in NETs['all'] ])
# Connections : # Connections :
############### ###############
# Connection à la base sql via pgsql # Connection à la base sql via pgsql
pgsql = PgSQL.connect(host='/var/run/postgresql', database='filtrage', user='crans') pgsql = PgSQL.connect(host='/var/run/postgresql', database='filtrage', user='crans')
pgsql.autocommit = True pgsql.autocommit = True
curseur = pgsql.cursor() curseur = pgsql.cursor()
@ -73,10 +73,10 @@ for i in range(5):
sys.exit(1) sys.exit(1)
################################################################################ ################################################################################
# Vérification de l'upload # # Vérification de l'upload #
################################################################################ ################################################################################
# upload par entité (adhérent/club/machine crans) # upload par entité (adhérent/club/machine crans)
requete = """SELECT requete = """SELECT
sum(total), type, id sum(total), type, id
FROM FROM
@ -85,7 +85,7 @@ FROM
sum(total) AS total, ip_crans sum(total) AS total, ip_crans
FROM FROM
( (
( -- upload terminé par ip ( -- upload terminé par ip
SELECT SELECT
'upload',round(sum(upload)/1024/1024) AS total, ip_crans 'upload',round(sum(upload)/1024/1024) AS total, ip_crans
FROM FROM
@ -157,17 +157,17 @@ requete = "SELECT type,id FROM avertis_upload_soft where date>timestamp 'now' -
curseur.execute(requete) curseur.execute(requete)
avertis_upload_soft = curseur.fetchall() avertis_upload_soft = curseur.fetchall()
# Vérification : # Vérification :
################ ################
for elupload, eltype, elid in uploadeurs: for elupload, eltype, elid in uploadeurs:
if elupload >= upload.hard: if elupload >= upload.hard:
# L'adhérent a t il été blacklisté ? # L'adhérent a t il été blacklisté ?
#################################### ####################################
if [eltype, elid] in avertis_upload_hard: if [eltype, elid] in avertis_upload_hard:
continue continue
# Propriétaire issu de LDAP # Propriétaire issu de LDAP
########################### ###########################
if eltype == 'club': if eltype == 'club':
proprio = ldap.search('cid=%d'%elid, 'w')['club'] proprio = ldap.search('cid=%d'%elid, 'w')['club']
@ -177,7 +177,7 @@ for elupload, eltype, elid in uploadeurs:
continue continue
if len(proprio) != 1: if len(proprio) != 1:
print 'Erreur : Proprio non trouvé (%s) %d'%(eltype, elid) print 'Erreur : Proprio non trouvé (%s) %d'%(eltype, elid)
continue continue
proprio = proprio[0] proprio = proprio[0]
@ -189,37 +189,37 @@ for elupload, eltype, elid in uploadeurs:
############### ###############
debut = int(time()) debut = int(time())
fin = debut + 24*3600 fin = debut + 24*3600
proprio.blacklist([debut, fin, 'autodisc_upload', "Déconn auto. %s Mo" % elupload]) proprio.blacklist([debut, fin, 'autodisc_upload', "Déconn auto. %s Mo" % elupload])
proprio.save() proprio.save()
# On envoie un mail à l'adhérent # On envoie un mail à l'adhérent
################################ ################################
corps = upload.message_hard % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} corps = upload.message_hard % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()}
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(upload.expediteur, proprio.email(), corps) mail.sendmail(upload.expediteur, proprio.email(), corps)
# On envoie un mail à disconnect # On envoie un mail à disconnect
################################ ################################
if upload.disconnect_mail_hard: if upload.disconnect_mail_hard:
corps = upload.message_disconnect_hard % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} corps = upload.message_disconnect_hard % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()}
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(upload.expediteur, upload.expediteur, corps) mail.sendmail(upload.expediteur, upload.expediteur, corps)
# Vérification du nombre de déconnexions # Vérification du nombre de déconnexions
######################################### #########################################
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-30*24*3600 and x.split('$')[2] == 'autodisc_upload' ]) nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-30*24*3600 and x.split('$')[2] == 'autodisc_upload' ])
if nb_decos >= 3: if nb_decos >= 3:
# Génération du fichier postscript # Génération du fichier postscript
fichier_ps = generate_ps('upload', proprio, ldap) fichier_ps = generate_ps('upload', proprio, ldap)
# Envoi du mail à disconnect # Envoi du mail à disconnect
corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps} corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps}
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(upload.expediteur, upload.expediteur, corps) mail.sendmail(upload.expediteur, upload.expediteur, corps)
elif elupload >= upload.soft: elif elupload >= upload.soft:
# L'adhérent a t il été averti # L'adhérent a t il été averti
############################## ##############################
if [eltype, elid] in avertis_upload_soft: if [eltype, elid] in avertis_upload_soft:
continue continue
@ -234,7 +234,7 @@ for elupload, eltype, elid in uploadeurs:
continue continue
if len(proprio) != 1: if len(proprio) != 1:
print 'Proprio non trouvé (%s) %d'%(eltype, elid) print 'Proprio non trouvé (%s) %d'%(eltype, elid)
continue continue
proprio = proprio[0] proprio = proprio[0]
@ -242,13 +242,13 @@ for elupload, eltype, elid in uploadeurs:
################################################ ################################################
curseur.execute("INSERT INTO avertis_upload_soft (type,id,date) VALUES ('%s','%d','now')"%(eltype, elid)) curseur.execute("INSERT INTO avertis_upload_soft (type,id,date) VALUES ('%s','%d','now')"%(eltype, elid))
# On envoie un mail à l'adhérent # On envoie un mail à l'adhérent
################################ ################################
corps = upload.message_soft % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} corps = upload.message_soft % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()}
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(upload.expediteur, proprio.email(), corps) mail.sendmail(upload.expediteur, proprio.email(), corps)
# On envoie un mail à disconnect # On envoie un mail à disconnect
################################ ################################
if upload.disconnect_mail_soft: if upload.disconnect_mail_soft:
corps = upload.message_disconnect_soft % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} corps = upload.message_disconnect_soft % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()}
@ -260,15 +260,15 @@ curseur.execute("DELETE FROM avertis_upload_hard WHERE date < timestamp 'now' -
curseur.execute("DELETE FROM avertis_upload_soft WHERE date < timestamp 'now' - interval '1 day'") curseur.execute("DELETE FROM avertis_upload_soft WHERE date < timestamp 'now' - interval '1 day'")
################################################################################ ################################################################################
# Détection de l'existence de virus # # Détection de l'existence de virus #
################################################################################ ################################################################################
# Dans la table virus on sélectionne les ip_src qui appartiennent au réseau # Dans la table virus on sélectionne les ip_src qui appartiennent au réseau
requete = "SELECT ip_src,count(ip_src) FROM virus WHERE %s and date > timestamp 'now' - interval '1 hour' group by ip_src" % ip_src_in_crans requete = "SELECT ip_src,count(ip_src) FROM virus WHERE %s and date > timestamp 'now' - interval '1 hour' group by ip_src" % ip_src_in_crans
curseur.execute(requete) curseur.execute(requete)
infectes = curseur.fetchall() infectes = curseur.fetchall()
# Récupération des infectés pour ne pas les reblacklister # Récupération des infectés pour ne pas les reblacklister
requete = "SELECT ip_crans FROM avertis_virus" requete = "SELECT ip_crans FROM avertis_virus"
curseur.execute(requete) curseur.execute(requete)
infectes_old = curseur.fetchall() infectes_old = curseur.fetchall()
@ -279,7 +279,7 @@ for ip, nombre in infectes:
if nombre < virus.virus: if nombre < virus.virus:
continue continue
# Si on est déja avertis, on laisse passer # Si on est déja avertis, on laisse passer
if [ip] in infectes_old: if [ip] in infectes_old:
continue continue
@ -289,38 +289,38 @@ for ip, nombre in infectes:
proprio = machine.proprietaire() proprio = machine.proprietaire()
blacklist = proprio.blacklist() blacklist = proprio.blacklist()
# Inscription dans la table des infectés # Inscription dans la table des infectés
requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
curseur.execute(requete) curseur.execute(requete)
# On récupère les index des lignes de bl où il y a marqué virus # On récupère les index des lignes de bl où il y a marqué virus
index = [blacklist.index(x) for x in blacklist if 'virus' in x ] index = [blacklist.index(x) for x in blacklist if 'virus' in x ]
if index: if index:
# L'adhérent est déjà blacklisté # L'adhérent est déjà blacklisté
proprio.blacklist((index[0], ['now', '-', 'virus', hostname])) proprio.blacklist((index[0], ['now', '-', 'virus', hostname]))
proprio.save() proprio.save()
else: else:
# L'adhérent n'est pas encore blacklisté # L'adhérent n'est pas encore blacklisté
proprio.blacklist(['now', '-', 'virus', hostname]) proprio.blacklist(['now', '-', 'virus', hostname])
proprio.save() proprio.save()
################################################################################ ################################################################################
# Détection des virus qui floodent # # Détection des virus qui floodent #
################################################################################ ################################################################################
# Dans la table virus on sélectionne les ip_src qui appartiennent au réseau # Dans la table virus on sélectionne les ip_src qui appartiennent au réseau
requete = "SELECT ip_src,count(ip_src) FROM flood WHERE %s and date > timestamp 'now' - interval '1 hour' GROUP BY ip_src" % ip_src_in_crans requete = "SELECT ip_src,count(ip_src) FROM flood WHERE %s and date > timestamp 'now' - interval '1 hour' GROUP BY ip_src" % ip_src_in_crans
curseur.execute(requete) curseur.execute(requete)
infectes = curseur.fetchall() infectes = curseur.fetchall()
# Récupération des infectés pour ne pas les reblacklister # Récupération des infectés pour ne pas les reblacklister
requete = "SELECT ip_crans FROM avertis_virus" requete = "SELECT ip_crans FROM avertis_virus"
curseur.execute(requete) curseur.execute(requete)
infectes_old = curseur.fetchall() infectes_old = curseur.fetchall()
for ip, nombre in infectes: for ip, nombre in infectes:
# Si on est en dessous du seuil, ou qu'on est déjà averti, on laisse passer # Si on est en dessous du seuil, ou qu'on est déjà averti, on laisse passer
if nombre < virus.flood or [ip] in infectes_old: if nombre < virus.flood or [ip] in infectes_old:
continue continue
@ -328,25 +328,25 @@ for ip, nombre in infectes:
try : try :
machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
except IndexError : except IndexError :
# Dans le cas où l'ip détectée n'est pas enregistrée # Dans le cas où l'ip détectée n'est pas enregistrée
print u"La machine avec l'ip %s n'est pas declaree !" % ip print u"La machine avec l'ip %s n'est pas declaree !" % ip
continue continue
hostname = machine.nom() hostname = machine.nom()
proprio = machine.proprietaire() proprio = machine.proprietaire()
blacklist = proprio.blacklist() blacklist = proprio.blacklist()
# Inscription dans la table des infectés # Inscription dans la table des infectés
requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip
curseur.execute(requete) curseur.execute(requete)
# On récupère les index des lignes de bl où il y a marqué virus # On récupère les index des lignes de bl où il y a marqué virus
index = [ blacklist.index(x) for x in blacklist if 'virus' in x ] index = [ blacklist.index(x) for x in blacklist if 'virus' in x ]
if index: if index:
# L'adhérent est déjà blacklisté # L'adhérent est déjà blacklisté
proprio.blacklist((index[0], ['now', '-', 'virus', hostname])) proprio.blacklist((index[0], ['now', '-', 'virus', hostname]))
proprio.save() proprio.save()
else: else:
# L'adhérent n'est pas encore blacklisté # L'adhérent n'est pas encore blacklisté
proprio.blacklist(['now', '-', 'virus', hostname]) proprio.blacklist(['now', '-', 'virus', hostname])
proprio.save() proprio.save()
@ -354,19 +354,19 @@ for ip, nombre in infectes:
# Reconnexion si le virus/flood a disparu # Reconnexion si le virus/flood a disparu
######################################### #########################################
# Dans la table avertis_virus on récupère la liste des infectés # Dans la table avertis_virus on récupère la liste des infectés
requete = "SELECT ip_crans FROM avertis_virus where date < timestamp 'now' - interval '1 hour'" requete = "SELECT ip_crans FROM avertis_virus where date < timestamp 'now' - interval '1 hour'"
curseur.execute(requete) curseur.execute(requete)
infectes = [ x[0] for x in curseur.fetchall() ] infectes = [ x[0] for x in curseur.fetchall() ]
for IP in infectes: for IP in infectes:
# Nombre de requêtes de virus # Nombre de requêtes de virus
requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP
curseur.execute(requete1) curseur.execute(requete1)
nb_virus = curseur.fetchall() nb_virus = curseur.fetchall()
# Nombre de requêtes de flood # Nombre de requêtes de flood
requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP
curseur.execute(requete2) curseur.execute(requete2)
nb_flood = curseur.fetchall() nb_flood = curseur.fetchall()
@ -379,7 +379,7 @@ for IP in infectes:
print "Suppression de %s des machines infectees (la machine n'existe plus)"%IP print "Suppression de %s des machines infectees (la machine n'existe plus)"%IP
requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP
curseur.execute(requete) curseur.execute(requete)
continue # la machine n'existe plus, on passe à l'infecté suivant continue # la machine n'existe plus, on passe à l'infecté suivant
# Si la machine n'est pas online, on reconnecte # Si la machine n'est pas online, on reconnecte
#if machine_online(machine): #if machine_online(machine):
proprio = machine.proprietaire() proprio = machine.proprietaire()
@ -406,19 +406,19 @@ for IP in infectes:
# Gestion du peer to peer # # Gestion du peer to peer #
################################################################################ ################################################################################
# Dans la table p2p on sélectionne les ip_src qui appartiennent au réseau # Dans la table p2p on sélectionne les ip_src qui appartiennent au réseau
requete = "SELECT ip_src,id_p2p,count(ip_src) FROM p2p WHERE %s AND date > timestamp 'now' - interval '2 hours' GROUP BY ip_src,id_p2p ORDER BY ip_src" % ip_src_in_crans requete = "SELECT ip_src,id_p2p,count(ip_src) FROM p2p WHERE %s AND date > timestamp 'now' - interval '2 hours' GROUP BY ip_src,id_p2p ORDER BY ip_src" % ip_src_in_crans
curseur.execute(requete) curseur.execute(requete)
fraudeurs = curseur.fetchall() fraudeurs = curseur.fetchall()
# Récupération des fraudeurs pour ne pas les resanctionner # Récupération des fraudeurs pour ne pas les resanctionner
requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date > timestamp 'now' - interval '2 hours'" requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date > timestamp 'now' - interval '2 hours'"
curseur.execute(requete) curseur.execute(requete)
avertisp2p = curseur.fetchall() avertisp2p = curseur.fetchall()
for ip, id_p2p, nombre in fraudeurs: for ip, id_p2p, nombre in fraudeurs:
# On récupére le protocole de p2p : # On récupére le protocole de p2p :
requete = "SELECT nom FROM protocole_p2p WHERE id_p2p=%d" % id_p2p requete = "SELECT nom FROM protocole_p2p WHERE id_p2p=%d" % id_p2p
curseur.execute(requete) curseur.execute(requete)
protocole = curseur.fetchall()[0][0] protocole = curseur.fetchall()[0][0]
@ -430,7 +430,7 @@ for ip, id_p2p, nombre in fraudeurs:
if id_p2p == 1: if id_p2p == 1:
continue continue
# Récupération des ref de la machine # Récupération des ref de la machine
machines = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'] machines = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine']
if len(machines) == 0: if len(machines) == 0:
# La machine a ete supprimee entre temps # La machine a ete supprimee entre temps
@ -440,7 +440,7 @@ for ip, id_p2p, nombre in fraudeurs:
proprio = machine.proprietaire() proprio = machine.proprietaire()
blacklist = proprio.blacklist() blacklist = proprio.blacklist()
# Envoi du mail à disconnect # Envoi du mail à disconnect
if p2p.disconnect_mail: if p2p.disconnect_mail:
requete = "select date from p2p where date > timestamp 'now' - interval '2 hours' and ip_src='%s' order by date limit 1"%ip requete = "select date from p2p where date > timestamp 'now' - interval '2 hours' and ip_src='%s' order by date limit 1"%ip
curseur.execute(requete) curseur.execute(requete)
@ -458,7 +458,7 @@ for ip, id_p2p, nombre in fraudeurs:
requete = "INSERT INTO avertis_p2p (ip_crans,date,protocole) VALUES ('%s','now','%s')" % (ip, protocole) requete = "INSERT INTO avertis_p2p (ip_crans,date,protocole) VALUES ('%s','now','%s')" % (ip, protocole)
curseur.execute(requete) curseur.execute(requete)
# On envoie un mail a l'adhérent # On envoie un mail a l'adhérent
################################ ################################
corps = p2p.deconnexion % { 'From': p2p.expediteur, corps = p2p.deconnexion % { 'From': p2p.expediteur,
'To': proprio.email(), 'To': proprio.email(),
@ -467,13 +467,13 @@ for ip, id_p2p, nombre in fraudeurs:
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(p2p.expediteur, proprio.email(), corps) mail.sendmail(p2p.expediteur, proprio.email(), corps)
# Vérification du nombre de déconnexions # Vérification du nombre de déconnexions
######################################### #########################################
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ]) nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ])
if nb_decos >= 3: if nb_decos >= 3:
fichier_ps = generate_ps('p2p', proprio, ldap) fichier_ps = generate_ps('p2p', proprio, ldap)
# Envoi du mail à disconnect # Envoi du mail à disconnect
corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur, corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur,
'to': p2p.expediteur, 'to': p2p.expediteur,
'nbdeco': nb_decos, 'nbdeco': nb_decos,
@ -482,7 +482,7 @@ for ip, id_p2p, nombre in fraudeurs:
corps = corps.encode('utf-8') corps = corps.encode('utf-8')
mail.sendmail(p2p.expediteur, p2p.expediteur, corps) mail.sendmail(p2p.expediteur, p2p.expediteur, corps)
# L'adhérent n'est pas encore blacklisté # L'adhérent n'est pas encore blacklisté
fin = int(time()) + 24*3600 fin = int(time()) + 24*3600
proprio.blacklist(['now', fin, 'autodisc_p2p', hostname]) proprio.blacklist(['now', fin, 'autodisc_p2p', hostname])
proprio.save() proprio.save()

View file

@ -23,10 +23,11 @@ def log(x):
syslog.syslog(x) syslog.syslog(x)
syslog.closelog() syslog.closelog()
import crans.utils.exceptions sys.path.append('/usr/scripts/lib')
import utils.exceptions
import locale #import locale
locale.setlocale(locale.LC_TIME, 'fr_FR') #locale.setlocale(locale.LC_TIME, 'fr_FR')
sanctions = ['upload', 'p2p'] sanctions = ['upload', 'p2p']

View file

@ -23,7 +23,7 @@ reseau = ["138.231.136.0/21", "138.231.148.0/22"]
# Ouverture de la base de données : # Ouverture de la base de données :
################################### ###################################
pgsql = PgSQL.connect(host='rouge.adm.crans.org', database='filtrage', user='crans') pgsql = PgSQL.connect(host='pgsql.adm.crans.org', database='filtrage', user='crans')
pgsql.autocommit = True pgsql.autocommit = True
curseur = pgsql.cursor() curseur = pgsql.cursor()

View file

@ -27,7 +27,7 @@ reseau = config.NETs['all']
# Ouverture de la base de données : # Ouverture de la base de données :
################################### ###################################
pgsql = PgSQL.connect(host='rouge.adm.crans.org', database='filtrage', user='crans') pgsql = PgSQL.connect(host='pgsql.adm.crans.org', database='filtrage', user='crans')
pgsql.autocommit = True pgsql.autocommit = True
################################################################# #################################################################