#!/usr/bin/env python3 import os import sys import datetime HOME = os.environ['HOME'] MAILDIR = HOME + '/.maildir/' PCMAIL = HOME + '/.procmail/' TRASH = MAILDIR + '.Trash/cur/' BOXES = { '.': 0, '.Archive': 0, '.Archivio': 0, '.Drafts': 0, '.Sent': 0, '.Junk': 0, '.Admins': 0, '.Root pcteor1': 3, '.Fail2Ban Logs': 3, '.Backup Newborg': 5, '.Backup Born': 5, '.Condor': 3, '.Log150': 0, '.LogAdmin': 0, '.Cluster Logwatch I': 3, '.Cluster Logwatch II': 1, '.Nagios Farm Born': 3, '.Nagios Cluster Newborg': 3, '.Farm Logs': 3, '.Farm Logwatch I': 3, '.Farm Logwatch II': 1, '.LCM Accounts': 3, '.Motion': 3, '.Quota Farm': 3, '.Gogs': 1 } def cdate(filename): # return creation datetime t = os.path.getctime(filename) return datetime.datetime.fromtimestamp(t) def ddate(filename): # return difference between creation date and nowdate in days return abs((datetime.datetime.now() - cdate(filename)).days) def empty_boxes(debug=False): os.chdir(MAILDIR) for BOX in BOXES: if BOXES[BOX] != 0: os.chdir(BOX + '/cur') for mail in os.listdir('.'): if ddate(mail) >= BOXES[BOX]: if debug: print(mail, ddate(mail), BOXES[BOX], 'OK', BOX) else: os.rename(mail, TRASH + mail) else: None else: None os.chdir(MAILDIR) def empty_logs(debug=False): # empty PROCMAIL LOGS if too older os.chdir(PCMAIL + 'log') for log in os.listdir('.'): if ddate(log) >= 3: if debug: print(log, ddate(log), '3', 'OK') else: os.remove(log) else: None if __name__ == '__main__': if len(sys.argv) == 1: empty_boxes() empty_logs() elif len(sys.argv) == 2: if sys.argv[1] == 'debug': empty_boxes(debug=True) empty_logs(debug=True) else: sys.exit(1) else: sys.exit(1)