[comptes_inactifs] Adaptation au nouveau timestamp
This commit is contained in:
parent
98d347ccc1
commit
9447287a7a
1 changed files with 9 additions and 15 deletions
|
@ -35,8 +35,8 @@ from ldap_crans import crans_ldap
|
||||||
from config import ann_scol
|
from config import ann_scol
|
||||||
db = crans_ldap()
|
db = crans_ldap()
|
||||||
|
|
||||||
from syslog import *
|
import syslog
|
||||||
openlog('comptes_inactifs')
|
syslog.openlog('comptes_inactifs')
|
||||||
|
|
||||||
|
|
||||||
def nb_mails_non_lus(login):
|
def nb_mails_non_lus(login):
|
||||||
|
@ -58,7 +58,7 @@ def nb_mails_non_lus(login):
|
||||||
class ComptesInactifs(object):
|
class ComptesInactifs(object):
|
||||||
# liste d'expressions régulières qui seront testées sur les lignes de log
|
# liste d'expressions régulières qui seront testées sur les lignes de log
|
||||||
# le premier groupe doit correspondre à la date, le second au login
|
# le premier groupe doit correspondre à la date, le second au login
|
||||||
re = [re.compile(r'^(\w+\s+\d+\s+\d+:\d+:\d+).*(?:'
|
compiled_regex = [re.compile(r'^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}).*(?:'
|
||||||
r'dovecot.*Login: user=<|'
|
r'dovecot.*Login: user=<|'
|
||||||
r'sshd.*Accepted.*for '
|
r'sshd.*Accepted.*for '
|
||||||
r')([^ >]+).*$'),
|
r')([^ >]+).*$'),
|
||||||
|
@ -95,8 +95,8 @@ class ComptesInactifs(object):
|
||||||
else:
|
else:
|
||||||
# on loggue on espérant que les logs seront réinjectés
|
# on loggue on espérant que les logs seront réinjectés
|
||||||
# plus tard
|
# plus tard
|
||||||
syslog("LDAP(lock): derniereConnexion=<%s>, login=<%s>" %
|
syslog.syslog("LDAP(lock): derniereConnexion=<%s>, login=<%s>" %
|
||||||
(strftime("%b %d %H:%M:%S", localtime(timestamp)), login))
|
(strftime("%Y-%m-%dT%H:%M:%S", localtime(timestamp)), login))
|
||||||
return total
|
return total
|
||||||
|
|
||||||
def update(self, login, timestamp):
|
def update(self, login, timestamp):
|
||||||
|
@ -117,18 +117,12 @@ class ComptesInactifs(object):
|
||||||
now = time() + 600
|
now = time() + 600
|
||||||
nombre = 0
|
nombre = 0
|
||||||
for line in loglines:
|
for line in loglines:
|
||||||
for r in self.re:
|
for r in self.compiled_regex:
|
||||||
m = r.match(line)
|
m = r.match(line)
|
||||||
if m: break
|
if m: break
|
||||||
if not m: continue
|
if not m: continue
|
||||||
date = list(strptime(m.group(1), "%b %d %H:%M:%S"))
|
date = list(strptime(m.group(1), "%Y-%m-%dT%H:%M:%S"))
|
||||||
date[0] = annee
|
|
||||||
t = mktime(date)
|
t = mktime(date)
|
||||||
# les lignes de syslog n'indiquent pas l'année
|
|
||||||
# on suppose qu'une date dans le futur est en fait l'année dernière
|
|
||||||
if t > now:
|
|
||||||
date[0] = annee - 1
|
|
||||||
t = mktime(date)
|
|
||||||
self.update(m.group(2).lower(), t)
|
self.update(m.group(2).lower(), t)
|
||||||
nombre += 1
|
nombre += 1
|
||||||
return nombre
|
return nombre
|
||||||
|
@ -139,8 +133,8 @@ class ComptesInactifs(object):
|
||||||
"""
|
"""
|
||||||
parsed_lines = self.update_from_syslog(sys.stdin)
|
parsed_lines = self.update_from_syslog(sys.stdin)
|
||||||
updated_entries = self.commit_to_ldap()
|
updated_entries = self.commit_to_ldap()
|
||||||
syslog("%(parsed_lines)s ligne(s) traitée(s)" % locals())
|
syslog.syslog("%(parsed_lines)s ligne(s) traitée(s)" % locals())
|
||||||
syslog("%(updated_entries)s entrée(s) mise(s) à jour dans la base LDAP" % locals())
|
syslog.syslog("%(updated_entries)s entrée(s) mise(s) à jour dans la base LDAP" % locals())
|
||||||
if parsed_lines == 0 or updated_entries == 0:
|
if parsed_lines == 0 or updated_entries == 0:
|
||||||
sys.stderr.write("""Erreur lors de la mise à jour de la base LDAP :
|
sys.stderr.write("""Erreur lors de la mise à jour de la base LDAP :
|
||||||
%(parsed_lines)s ligne(s) traitée(s)
|
%(parsed_lines)s ligne(s) traitée(s)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue