Python指令碼,定時清除大檔案

2022-08-27 05:21:10 字數 4894 閱讀 2802

#

!/usr/bin/env python3

#-*- coding:utf-8 -*-

import

math,os,sys,time

import

traceback

import

subprocess

...#

定時任務指令碼,清除大於1g的檔案

...#

定義標準檔案大小,預設是位元組

maxfilesize=1024*1024*1024

#定義檔案路徑

files =

#清除大於1g的檔案

defclearlargefile():

for file,message in

files.items():

filesize =getfilesize(file)

if int(filesize) >=maxfilesize:

result = os.system("

cat /dev/null >

" +file)

checkresult(result,message)

else

:

print("

檔案["+file+"

]大小為[

"+filesize+"

],小於設定的最大值[

"+str(maxfilesize)+"

],無需清空")

#獲取檔案大小

defgetfilesize(file):

linuxcommand = "

ls -l

" + file + "

| awk ''

"print("

獲取檔案大小的linux命令為[

"+linuxcommand+"]"

) output,returncode =executeshell(linuxcommand)

return

output

#執行linux命令獲取返回結果與返回碼

def executeshell(command,print_output=true,universal_newlines=true):

p = subprocess.popen(command, stdout=subprocess.pipe, stderr=subprocess.pipe, shell=true, universal_newlines=universal_newlines)

ifprint_output:

output_array =

while

true:

line =p.stdout.readline()

ifnot

line:

break

output =""

.join(output_array)

else

: output =p.stdout.read()

p.wait()

errout =p.stderr.read()

p.stdout.close()

p.stderr.close()

return

str(output),str(p.returncode)

#判斷執行結果

defcheckresult(result,message):

if result ==0:

print(message+"

執行成功")

else

:

print(message+"

執行失敗")

#異常的處理

defhandleexcption(e):

print("

<---the excption begin--->")

print('

\n' * 1)

traceback.print_exc()

print('

\n' * 1)

print("

<---the excption end--->")

#最終執行的方法

defexecute():

print("

<---the clearlargefile.py begin--->")

print('

\n' * 1)

try:

clearlargefile()

except

exception as e:

handleexcption(e)

print('

\n' * 1)

print("

<---the clearlargefile.py end--->")

#最終執行

execute()

下面是用系統方法

#

!/usr/bin/env python3

#-*- coding:utf-8 -*-

import

math,os,sys,time

import

traceback

import

subprocess

import

datetime

...#

定時任務指令碼,清除大於1g的檔案

...#

定義標準檔案大小,預設是位元組,最終設定大小為1g

maxfilesize=1*1024*1024*1024

#定義檔案路徑

files =

#清除大於1g的檔案

defclearlargefile():

for file,message in

files.items():

filesize =getfilesize(file)

if filesize >=maxfilesize:

result = os.system("

cat /dev/null >

" +file)

checkresult(result,message)

else

:

print("

檔案["+file+"

]大小為[

"+str(filesize)+"

]位元組,小於設定的最大值[

"+str(maxfilesize)+"

]位元組,無需清空")

#獲取檔案大小

defgetfilesize(file):

return

os.path.getsize(file)

#執行linux命令獲取返回結果與返回碼

def executeshell(command,print_output=true,universal_newlines=true):

p = subprocess.popen(command, stdout=subprocess.pipe, stderr=subprocess.pipe, shell=true, universal_newlines=universal_newlines)

ifprint_output:

output_array =

while

true:

line =p.stdout.readline()

ifnot

line:

break

output =""

.join(output_array)

else

: output =p.stdout.read()

p.wait()

errout =p.stderr.read()

p.stdout.close()

p.stderr.close()

return

str(output),str(p.returncode)

#判斷執行結果

defcheckresult(result,message):

if result ==0:

print(message+"

執行成功")

else

:

print(message+"

執行失敗")

#異常的處理

defhandleexcption(e):

print("

<---the excption begin--->")

print('

\n' * 1)

traceback.print_exc()

print('

\n' * 1)

print("

<---the excption end--->")

#最終執行的方法

defexecute():

print("

<---the clearlargefile.py begin,the time is [

"+datetime.datetime.now().strftime('

%y-%m-%d %h:%m:%s

')+"

]--->")

print('

\n' * 1)

try:

clearlargefile()

except

exception as e:

handleexcption(e)

print('

\n' * 1)

print("

<---the clearlargefile.py end,the time is [

"+datetime.datetime.now().strftime('

%y-%m-%d %h:%m:%s

')+"

]--->")

#最終執行

execute()

shell指令碼定時清除日誌檔案

bin bash clearfile 獲取資料夾內,檔案大小 m為單位 和檔案路徑 呼叫clear函式清空檔案 clear filesizeandfile clear echo 檔案大小 filesize echo 檔案路徑 filepath echo 磁碟空間 disksize 獲取檔名 file...

Linux定時清除檔案

find home dbback mtime 7 name sql.gz exec rm rf find 對應目錄 mtime 天數 name 檔名 exec rm rf 空格 find linux查詢命令,使用者查詢指定條件的檔案 home dbback 需要進行清理的目標目錄 mtime 標準語...

拆分大檔案的指令碼

有時候需要把乙個大檔案拆分成幾個小檔案,由於生產系統上沒有split程式,因此自己寫了兩個指令碼來實現該功能。第乙個指令碼根據行數來拆分 bin bash filename my line split.sh usage my line split.sh 行數 bigfile 拆分的檔案以bigfil...