1. 程式人生 > >python小指令碼 自動清理大於七天的Tomcat日誌

python小指令碼 自動清理大於七天的Tomcat日誌

系統資訊

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, 類似於此包含切片日期的日誌檔名字