根据输入的时间区间删除指定目录中的目录

1.进入脚本所在路径

1
cd /opt/TongWeb7.0/bin

2.执行脚本

1
python3 cleanCacheFiles.py "2023-10-10 10:10" "2024-10-10 10:10"

说明:第一个时间为开始时间,第二个时间为结束时间。 可以只输入开始时间,那么结束时间为执行脚本的当前时间。 双引号不能省略,因为日期和时间中间有空格会识别为四个参数。

Python脚本内容:

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
import os
import time
import shutil
import sys
import datetime
if len(sys.argv) 1:
starttime = sys.argv[1]
try:
endtime = sys.argv[2]
except:
endtime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
#检测路径
file_path = '/root/logs/'
#将开始结束时间转换为时间戳
try:
t0 = time.mktime(time.strptime(starttime, "%Y-%m-%d %H:%M"))
t1 = time.mktime(time.strptime(endtime, "%Y-%m-%d %H:%M"))
except:
print ('Error:输入的时间格式不匹配!')
sys.exit()
if os.path.exists(file_path):
#获取顶级目录里的二级目录
for dir in os.listdir(file_path):
#获取二级目录里的目录
for subdir in os.listdir(file_path+dir):
fullpath=file_path+dir+'/'+subdir
#计算时间戳是否在指定范围内
if os.path.getmtime(fullpath) >= t0 and os.path.getmtime(fullpath) <= t1:
#如果在指定范围内就删除目录
try:
shutil.rmtree(fullpath)
print ('正在删除'+fullpath+'!')
except:
print ('Error:'+fullpath+'目录删除失败!')
print ('执行结束!')
else:
print ('Error:根目录不存在!')
else:
print ('请输入开始时间及结束时间,或者只输入开始时间!')