python--自動刪除檔案
阿新 • • 發佈:2019-01-26
1、目的:定期自定刪除7天前的資料
python指令碼如下:
#coding=utf-8
import os,time,datetime
#需定時刪除的目錄的上一層路徑
data_dir="/data"
#獲取本地系統上週的時間
date = os.popen("date -d '(date +%Y%m%d) -7 days' +%Y-%m-%d").read().strip()
#將date轉換成時間格式
t2 = time.strptime(date,'%Y-%m-%d')
t2 = datetime.datetime(*t2[:3])
#初始化檔名稱列表
dir_name = []
#迴圈取出目錄的絕對路徑
for filename in os.listdir(data_dir):
filepath = os.path.join(data_dir,filename)
#只對目錄進行操作,獲取目錄的最後修改時間,並把最後修改時轉換成時間格式
if os.path.isdir(filepath):
dir_date = os.popen("stat %s|sed -n '7p'|awk '{print $1}'|awk -F ':' '{print $2}'" %filepath).read().strip()
t = time .strptime(dir_date,'%Y-%m-%d')
t1 = datetime.datetime(*t[:3])
if t1>t2:
print "目錄%s近期在用,無法刪除!" %filename
elif t2>t1:
print "目錄%s已廢棄超過一週,正在刪除%s" %(filename,filepath)
time.sleep(10)
os.system("rm -rf %s" %filepath)
else :
print "目錄%s廢棄未超過一週,等待下次檢測...." %filename
伺服器的crontab配置如下:
0 0 * * * /usr/bin/python /data/delete_data.py >>/data/delete_data.log 2>&1