python小指令碼 自動清理大於七天的Tomcat日誌
阿新 • • 發佈:2019-02-05
系統資訊
CentOS release 6.6 (Final)
預設py版本
Python 2.6.6
指令碼內容
簡介 根據目錄 遍歷目錄中的檔案 然後判斷建立時間和七天前的時間大小
如果最後一次訪問時間小於七天前的時間則進行刪除
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:xp #date:20170522 #blog_url: http://blog.csdn.net/wuxingpu5/ import os,time,datetime #logs directory data_dir='/home/dev/app/tomcat_test/logs' def del_log(): date = os.popen("date -d '(date +%Y%m%d) -7 days' +%Y-%m-%d").read().strip() t2=time.strptime(date,'%Y-%m-%d') #t2 is the seven days ago t2 = datetime.datetime(*t2[:3]) #get each file in the directory for filename in os.listdir(data_dir): filepath = os.path.join(data_dir,filename) #Judgment is a file if os.path.isfile(filepath): file_date = os.popen("stat %s | sed -n '7p' | awk '{print $2}'" % filepath).read().strip() #t1 is the last change time of the file t = time.strptime(file_date,'%Y-%m-%d') t1 = datetime.datetime(*t[:3]) log_len = len(filename.split('-')) #Compare creation time earlier than seven days ago if t1 < t2 and log_len >= 3: time.sleep(2) os.system("true >%s" %filepath) os.system("rm -rf %s" %filepath) del_log() #change directory and then run again #data_dir='/home/dev/app/tomcat_test2/logs' #del_log()
如有多個Tomcat 可以更改指令碼末尾的目錄 再次執行 datadir對應日誌目錄
#
#date = os.popen("date -d '(date +%Y%m%d) -7 days' +%Y-%m-%d").read().strip() 可以修改此行的天數 自定義刪除的時間
#附:此指令碼對應的日誌已經做了切片 日誌格式為日誌名.年-月-日.log, 類似於此包含切片日期的日誌檔名字