scripts/autologout.py
Antoine Durand-Gasselin 4a68475e34 [wiki-lenny] suppression de static/
darcs-hash:20090314092631-bd074-b01256aeaf71e935851b3ecdbd623eaae8c9e8a1.gz
2009-03-14 10:26:31 +01:00

39 lines
1.1 KiB
Python

#! /usr/bin/env python
import sre, commands
import crans.utils.logs
log = crans.utils.logs.getFileLogger('autologout')
# pour chaque ligne du w
for w in commands.getoutput("w -h").split('\n') :
if not w : continue
# on splite
w = sre.split(' *', w)
if w[0] in ['cohen','segaud']:
continue
# on verifie que c'est une connection du bde
hosts = ['bde.crans.org','cableur.crans.org','cableuse.crans.org','venus.crans.org']
if w[2] not in [ h[0:16] for h in hosts ] :
continue
# on verifie qu'on a depase le timeout
if sre.match('^\d*\.\d*s$',w[4]) or sre.match('^[0-4]:\d*m$',w[4]) :
continue
# on reccuperre les processus s le tty
ps = sre.split(' *', commands.getoutput('ps auwwx | grep "%s" | head -n 1' % w[1] ) )
# on verrifie que c'est le bon user
if ps[0] != w[0] :
continue
# on verifie qu'on a pas de tty
if ps[6] != '?' :
continue
# on tue le process
commands.getoutput('kill %s' % ps[1] )
log.info("%s a ete deconnecte" % ps[0])
#print ps