python編寫自動(dòng)壓縮日志文件,減少磁盤空間浪費(fèi)

介紹:

 - 使用python編寫一個(gè)自動(dòng)壓縮日志文件的腳本

相關(guān)技術(shù):

1.使用python os.listdir遍歷文件涵亏,不包含文件夾

2.使用python re正則表達(dá)式匹配日志文件

3.使用python tarfile模塊壓縮文件

注意:

請(qǐng)使用Linux的crontab使用宰睡,謝謝!

比如:

每天凌晨5點(diǎn)執(zhí)行腳本

0 5 * * *  /usr/bin/python   /opt/script/compressLogs.py(這個(gè)是我的腳本路徑)

效果圖:

請(qǐng)看源代碼气筋,如果覺(jué)得好拆内,還請(qǐng)給小編點(diǎn)贊下下哦!

#!/usr/bin python
# _*_ coding:utf-8 _*_
# Author: Gavin
# Version: 1.0
# CreateTime: 2018-09-04
# ScriptName: compressLogs
# Description: 壓縮日志
# readme: logsPath請(qǐng)賦予相應(yīng)的值
import os
import datetime
import re
import tarfile


# 獲取文件路徑集合
def getFile(logsPath):
    logsFile = []
    fileList = os.listdir(logsPath)
    for fileName in fileList:
        path = os.path.join(logsPath, fileName)
        # 過(guò)濾子文件的文件被壓縮
        if os.path.isdir(path):
            continue
        logsFile.append(path)
    return logsFile


# 檢查文件,備份文件
def checkFile(logsFiles):
    newDate = datetime.datetime.now().strftime('%Y-%m-%d')  # 當(dāng)前時(shí)間
    for f in logsFiles:
        # 過(guò)濾壓縮文件檢查
        if f.endswith(".tar.gz"):
            continue
        # 使用正則獲取日志文件名的時(shí)間
        mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2})", f)
        if bool(mat):
            delta = datetime.datetime.strptime(newDate, '%Y-%m-%d') - datetime.datetime.strptime(mat.group(), '%Y-%m-%d')
            # 當(dāng)前時(shí)間 - 文件時(shí)間 :大于0
            if delta.days > 0:
                # 已經(jīng)壓縮完成的日志文件,刪除原日志文件,保留壓縮文件
                for apath in logsFiles:
                    if apath.endswith(".tar.gz") and apath.endswith("%s.tar.gz" % mat.group()):
                        os.remove(apath)
                        break
                # 沒(méi)有壓縮的文件,壓縮后,刪除原文件
                tar = tarfile.open("%s.tar.gz" % f[0: -4], "w:gz")
                tar.add(f)
                tar.close()
                os.remove(f)


if __name__ == "__main__":
    # 請(qǐng)修改日志路徑,注意路徑一定要完整,后面要使用str切割,不要省略路徑某位的/
    # windows: F://application_logs//  linux: /opt/applog/
    logsPath = "F://application_logs//"
    logsFiles = getFile(logsPath)
    checkFile(logsFiles)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宠默,一起剝皮案震驚了整個(gè)濱河市麸恍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搀矫,老刑警劉巖抹沪,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瓤球,居然都是意外死亡融欧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門卦羡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)噪馏,“玉大人,你說(shuō)我怎么就攤上這事绿饵∏飞觯” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵拟赊,是天一觀的道長(zhǎng)刺桃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)要门,這世上最難降的妖魔是什么虏肾? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任廓啊,我火速辦了婚禮欢搜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谴轮。我一直安慰自己炒瘟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布第步。 她就那樣靜靜地躺著疮装,像睡著了一般缘琅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上廓推,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天刷袍,我揣著相機(jī)與錄音,去河邊找鬼樊展。 笑死呻纹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的专缠。 我是一名探鬼主播雷酪,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼涝婉!你這毒婦竟也來(lái)了哥力?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤墩弯,失蹤者是張志新(化名)和其女友劉穎吩跋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體最住,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钞澳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涨缚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轧粟。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖脓魏,靈堂內(nèi)的尸體忽然破棺而出兰吟,到底是詐尸還是另有隱情,我是刑警寧澤茂翔,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布混蔼,位于F島的核電站,受9級(jí)特大地震影響珊燎,放射性物質(zhì)發(fā)生泄漏惭嚣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一悔政、第九天 我趴在偏房一處隱蔽的房頂上張望晚吞。 院中可真熱鬧,春花似錦谋国、人聲如沸槽地。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捌蚊。三九已至集畅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缅糟,已是汗流浹背挺智。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窗宦,地道東北人逃贝。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像迫摔,于是被迫代替她去往敵國(guó)和親沐扳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容