12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #!/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)
|