删除超过 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
- python a1.py
来源: http://www.bubuko.com/infodetail-2661054.html