- last_login = self.last_login_for_user(username)
- logging.info('user %s: size %dMB, last login: %d', username, homedir_size, last_login)
- days_ago = int( (current_time - last_login) / 3600 / 24 )
-
- reportsize = None
- for e in REPORT_SIZES:
- if days_ago >= e['days']: reportsize = e['size']
-
- if reportsize is not None and homedir_size > reportsize:
- logging.warning('Homedir of user %s is %d and did not login for a while', username, homedir_size)
- try:
- name = pwd.getpwnam(username).pw_gecos.decode('utf-8')
- name = name.split(',', 1)[0]
- name = name.split(' ', 1)[0]
- except:
- name = username
- explanation = EXPLANATIONS[random.randint(0,len(EXPLANATIONS)-1)]
- explanation = explanation.format(hostname=platform.node())
- self.send_mail(hostname=platform.node(),
- username=username,
- name=name,
- explanation=explanation,
- homedir_size=homedir_size,
- days_ago=days_ago)
+ try:
+ name = pwd.getpwnam(username).pw_gecos.decode('utf-8').split(',', 1)[0].split(' ', 1)[0]
+ except:
+ name = username
+ lastlog_time = self.lastlog_times[username]
+ days_ago = int( (current_time - lastlog_time) / 3600 / 24 )
+ if [x for x in CRITERIA if days_ago >= x['days'] and homedir_size >= x['size']]:
+ explanation = EXPLANATIONS[random.randint(0,len(EXPLANATIONS)-1)].format(hostname=platform.node())
+ self.send_mail(hostname=platform.node(), username=username, name=name, explanation=explanation, homedir_size=homedir_size, days_ago=days_ago)