Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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)