25. juli 2006 - 12:13
Der er
3 kommentarer
Sletning af filer efter dato
Hej Eksperter.
Jeg har brug for et lille script jeg kan anvende til at slette filer automatisk når de bliver "x" antal dage gamle.
Firmaets exchange server har efterhånden en del log filer, og for ikke hele tiden at skulle sidde og slette disse manuelt, vil jeg nu gøre dette med et script og så anvende taskmanageren til at køre sciptet planmæssigt.
Jeg ønsker et script hvor jeg kan angive stien til hvilken folder der skal kigges i, samt der skal være mulighed for at definere hvor gamle filerne må være inden de bliver slettet.
Nogen der kan hjælpe med sådan et lille scipt?
Her er en version der kun kikker i den ene mappe, brug den på samme måde som den anden.
Slet # i sidste linie for at få den til at slette, ellers vil den kun fortælle hvilke filer der er for gamle.
import time, os, sys, fnmatch
from stat import *
now = time.time()
MyPath='d:\\temp'
MyExt='*.*'
MyAge=30
if sys.argv[1:] :
MyPath=sys.argv[1]
if sys.argv[2:] :
MyExt=sys.argv[2]
if sys.argv[3:] :
MyAge=sys.argv[3]
files = os.listdir(MyPath)
ffiles = fnmatch.filter(files, MyExt)
for file in ffiles :
FullPath = os.path.join(MyPath, file)
mode = os.stat(FullPath)[ST_MODE]
if not S_ISDIR(mode):
age = now - os.stat(FullPath)[ST_MTIME]
age = age/(60*60*24)
if age > float(MyAge) :
print FullPath, "is to old:", int(age), "days"
# os.remove(FullPath)