python script som sletter ældre filer med option for alder,path og suffix
by
admin
—
last modified
2007-04-23 11:51
USAGE: delete_files [-h <arg>] [-d <arg>] [-p <path>] [-s <suffix>]
Size 2.5 kB - File type text/python-sourceFile contents
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
USAGE: delete_files [-h <arg>] [-d <arg>] [-p <path>] [-s <suffix>]
-h <int> : default 0. Angiver filens mindste alder i timer.
-d <int> : default 0. Angiver filens mindste alder i dage.
-p <path> : default "." Angiver path til filerne som skal slettes.
-s <suffix>: default "" Angiver suffix til filerne som skal slettes.
Filer i <path> bibliotek bliver slettet hvis de er ældre end
summen af -h og -d argumenterne.
Eks.
# uden argumenter sletter alle filer
delete_files
# sletter filer i "." som er mere end 3 x 24 timer gamle
delete_files -d 3
# sletter filer i "." som er mere end 2 timer gamle
delete_files -h 2 -d 1
# sletter filer i /tmp som er mere end 1 dag og 2 timer gamle
delete_files -h 2 -p /tmp
# sletter filer i "." som er mere end 2 timer gamle og hedder <fil>.py
delete_files -h 2 -s .py
"""
import getopt, os, sys, datetime
##############################
# Fetch and validate Options #
##############################
try:
Options,Args = getopt.getopt(sys.argv[1:], 'h:d:p:s:')
except:
print __doc__
sys.exit()
# set tiden som default 0 timer
Tid = datetime.timedelta( hours=0 )
# set paht default as current directory
Path = "."
Suffix = ""
for Option, Argument in Options:
try: # test if argument for hour and day is int ? and set Tid
if Option == '-h':
Tid += datetime.timedelta( hours=int( Argument ) )
elif Option == '-d':
Tid += datetime.timedelta( days=int( Argument ) )
except: # Args was not int
print __doc__, "args must bee int"
sys.exit()
if Option == '-p':
# check if directory exist
Path = Argument
if not os.path.isdir(Path):
print __doc__, "-p %s does not exist" % (Path)
sys.exit()
elif Option == '-s':
Suffix = Argument
#############################################
# gennemgå alle filerne i Path bibliotek #
#############################################
# Set grænsen for hvor gamle filerne må være
Limit = datetime.datetime.now() - Tid
for Name in os.listdir(Path):
# check Suffix
if Suffix and Name[-len(Suffix):] != Suffix: continue
FName = Path+"/"+Name
if os.path.isfile(FName) and not os.path.islink(FName):
# kun filer chekkes
if datetime.datetime.fromtimestamp( os.path.getmtime( FName ) ) < Limit:
print "deleting " , FName
try:
os.remove(FName)
pass
except:
print "can't remove", FName
Click here to get the file