python歸檔日誌指令碼

2021-10-16 05:21:01 字數 4184 閱讀 4656

#!/usr/bin python3

# -*- encoding=utf-8 -*-

import os

from configparser import configparser

import zipfile

#####主要實現功能:1、路徑處理、2、解壓縮重複不壓縮、3、壓縮,其他的可能需要自己改寫

#判斷儲存路徑是否已經有相同檔案

def same(same_list,file_path):

####返回空:開始壓縮

#判斷資料夾是否為空,不為空。檢查是否有壓縮檔案

data_1=

if len(same_list):

#開啟返回的資料夾內容列表

for d1 in same_list:

#print(d1)

#判斷是否有壓縮檔案,有繼續

if ".zip" in d1:

print("有壓縮檔案")

# print("解壓路徑",file_path +"\\" +d1 )#d:\xm\python_xm\xm1\log\

##最終儲存壓縮檔案路徑=file_path:儲存路徑+d1:壓縮件名字

frzip = zipfile.zipfile(file_path +"\\" +d1, "r", zipfile.zip_deflated)

#解壓獲取解壓包資料

data_file = frzip.namelist()

#關閉frzip.close()

#新增解壓資料到指定列表

else:

print("沒有壓縮檔案")

# print("data_1",data_1)

#判斷解壓的list是否為空

return data_1 if len(data_1) else none

else:

print("檔案為空,沒有壓縮檔案")

#判斷解壓的list是否為空

return data_1 if len(data_1) else none

#路徑處理

def path_data(path_list):

#獲取path_list配置路徑下所有資訊

usr_list=os.listdir(path_list)#['1234', '202001', '202101', '__init__.py']

usr_dict={}

#獲取usr_list列表中檔案資訊

for i in usr_list:

# print(i)

ss1=0

#解決目標資料夾為空問題

try:

print(os.listdir(path_list+"\\"+i))

ss1=1 if len(os.listdir(path_list+"\\"+i)) else 0

except:

print("目標不是資料夾")

ss1=0

if "20" in i and ss1:

usr_list_kk =

# 拼接獲取日誌路徑+檔案資訊=最終存放檔案的資料夾位址

usr_list1=os.path.join(path_list+"\\"+i)

# print(usr_list1)

#跳過異常

try:

# 開啟最終單個資料夾獲取資料夾中檔案資訊成list

usr_list2=os.listdir(usr_list1)

# print(usr_list2)

#usr_list2資料夾是否為空,為空跳過

if usr_list2:

#usr_list2檔案不為空,讀取資料夾中檔案資訊k

# print("usr_list2",usr_list2)

for k in usr_list2:

# print(k)

#新增到url_dict字典

# url_dict.update()

except:

print("error:不是資料夾list")

usr_dict.update()

# 返回最終資料

#print(url_dict)

return usr_dict

#壓縮儲存方法

def path_file(a,path_list,file_path):

same_list = os.listdir(file_path)

print(same_list)

# print("same_list,file_path",same_list,file_path)

#執行資料去重方法

data1 = same(same_list,file_path)

#判斷壓縮檔案是否為空

if data1==none:

print("建立壓縮")

# print(a)

for k, d in a.items():

# print(k,d,file_path + "\\" + k + ".zip")

for d1 in d:

# 儲存路徑+壓縮包名

f = zipfile.zipfile(file_path + "\\" +d1+".zip","w",zipfile.zip_deflated)

# print(os.path.join(path_list+"\\"+k,d1))

f.write(os.path.join(path_list+"\\"+k,d1),k+"\\"+d1)

f.close()

print("完成!")

#找到了壓縮檔案並有值,做判斷看是否新獲取的資料,有在壓縮檔案重複

else:

print("增量壓縮")

s1=0

for k, d in a.items():

# print(k,d)

for d1 in d:

# print(k+"/"+d1,data1[s1])

# print("data1", data1, len(data1),k+"/"+d1)

# data1=data1 if len(data1)>0 else k+"/"+d1

# print("data1",data1,len(data1),k+"/"+d1)

data2=none

try:

data2=data1[s1]

except:

data2=data1

print("下標取不到值")

if k+"/"+d1 in data2:

print("重複資料不做處理")

else:

#儲存路徑+壓縮包名

f =zipfile.zipfile(file_path+"\\"+d1+".zip","w",zipfile.zip_deflated)

#print(os.path.join(path_list + "\\" + k, d1))

f.write(os.path.join(path_list + "\\" + k, d1), k + "\\" + d1)

f.close()

s1 += 1

print("完成!")

if __name__=="__main__":

# 方法例項化

conf = configparser()

# 獲取配置,linux中配置路徑有可能需要寫絕對路徑,否則無法識別

conf.read("./path_conf.ini",encoding="utf-8")

# #獲取日誌路徑

path_list = conf.get("path_url", "url1")

# 儲存壓縮日誌路徑

file_path = conf.get("path_url", "url2")

#路徑判斷處理

a = path_data(path_list)

# print(a)

#壓縮儲存方法

path_file(a,path_list,file_path)

path_conf.ini配置檔案

[path_url]

#獲取日誌路徑

url1=d:\xm\python_xm\xm1\log\11

#儲存壓縮壓縮日誌路徑

url2=d:\xm\python_xm\xm1\telnet_sh

Python指令碼,定時刪除歸檔日誌檔案

usr bin env python3 coding utf 8 import math,os,sys,time import traceback import subprocess import datetime 定時任務指令碼,刪除歸檔日誌檔案 定義前一天的時間 thedaybeforeyest...

Oracle 刪除歸檔日誌指令碼

歸檔日誌記錄著資料庫的操作記錄,是做資料恢復的依據,如果資料庫開啟了歸檔模式,那麼就會產生大量的歸檔日誌,當然如果有rman備份的話,可以在備份之後刪除已經備份過的日誌,如果是沒有採用rman備份的話,就需要自己來刪除這寫歸檔日誌。下面的幾個指令碼就減輕了dba的工作量。linux 平台 0 2 h...

Oracle 刪除歸檔日誌指令碼

歸檔日誌記錄著資料庫的操作記錄,是做資料恢復的依據,如果資料庫開啟了歸檔模式,那麼就會產生大量的歸檔日誌,當然如果有rman備份的話,可以在備份之後刪除已經備份過的日誌,如果是沒有採用rman備份的話,就需要自己來刪除這寫歸檔日誌。下面的幾個指令碼就減輕了dba的工作量。linux 平台 0 2 h...