#!/usr/bin/env python3 # -*- coding: utf-8 -*- ''' Script to remove empty dirs from FTP incoming dir. ''' import datetime import os import shutil import sys import traceback INCOMING_DIR = '/home/ftp/storage/incoming/' DAYS_OLD = 1 def _can_be_removed(path): if not os.path.isdir(path): return False for name in os.listdir(path): subpath = os.path.join(path, name) if not _can_be_removed(subpath): return False mtime = os.path.getmtime(path) mtime = datetime.datetime.fromtimestamp(mtime) if mtime < datetime.datetime.now() - datetime.timedelta(days=DAYS_OLD): return True return False if __name__ == '__main__': script_name = os.path.basename(__file__) try: if not os.path.isdir(INCOMING_DIR): print('%s: The FTP incoming dir does not exist (%s).' % (script_name, INCOMING_DIR)) sys.exit(1) for name in os.listdir(INCOMING_DIR): path = os.path.join(INCOMING_DIR, name) if _can_be_removed(path): shutil.rmtree(path) print('%s: Dir "%s" removed.' % (script_name, path)) except Exception: print('%s: Script crashed:\n%s' % (script_name, traceback.format_exc())) sys.exit(1)