删除超过10天的数据:
注: 1、or表示或者,相当于shell里的"||"(必须同时满足为and) 2、通过if not进行去重 3、key=len,reverse=True按路径长度从长到短排序(倒序)
vi a1.py
#!/usr/bin/python
import os import datetime import shutil
dir="/gms2/Jenkins"
now = datetime.datetime.now() delta = datetime.timedelta(days=10)
os.remove("/gms2/Scripts/log/rmgmss.txt") os.mknod("/gms2/Scripts/log/rmgmss.txt") os.remove("/gms2/Scripts/log/rmgms.txt") os.mknod("/gms2/Scripts/log/rmgms.txt") os.remove("/gms2/Scripts/log/rmgms2.txt") os.mknod("/gms2/Scripts/log/rmgms2.txt")
os.chdir(dir)
for root,dirs,files in os.walk(dir):
for f in dirs:
if f == "Images" or f == "OTA_user_gms" or f == "OTA_user_native" of f == "IMG":
mtime = datetime.datetime.fromtimestamp(os.path.getmtime(os.path.join(root,f)))
if mtime < (now - delta):
z = open('/gms2/Scripts/log/rmgms2.txt','a')
z.write(str(mtime)+"\n")
z.close()
b = os.path.dirname(os.path.join(root,f))
p = open('/gms2/Scripts/log/rmgmss.txt','a')
p.write(b+"\n")
p.close()
list = [] bc = open('/gms2/Scripts/log/rmgmss.txt','r') for bd in bc.readlines(): if not bd in list: list.append(bd) bc.close()
f2 = open('/gms2/Scripts/log/rmgms.txt','a')
for be in list:
f2.write(be)
f2.close()
size = 0 c = open('/gms2/Scripts/log/rmgms.txt','r') for i in c.readlines(): for root,dirs,files in os.walk(i.strip()): size += sum(os.path.getsize(os.path.join(root,fi)) for fi in files) si = (format((float(size) / 1024 / 1024 / 1024),'.1f')) e = open('/gms2/Scripts/log/rmgms3.txt','w') e.write(str(si)+'G') e.close()
y = []
x = open('/gms2/Scripts/log/rmgms.txt','r') for n in x.readlines(): y.append(n.strip()) for m in sorted(y,key=len,reverse=True): shutil.rmtree(m)
os.system('/usr/bin/mail -s "host1(10.0.0.2) gms delete(over 10 days) Size at date +%Y-%m-%d
" zhi.yang@ming.com < /gms2/Scripts/log/rmgms3.txt')
:wq