find /db/logs/archive_data/* -type f -mtime +5 | xargs rm
But find sometimes fails with the error "too many arguments" when it has to deal with too many files.
Here is another way in Python:
Example usage: Save this as cleanup.py and run - python cleanup.py /db/data 5
from sys import argv
import os, time
script, dir, age = argv
print "Searching directory %s for file older than %s day(s)" % (str(argv[1]), str(argv[2]))
#convert age to sec. 1 day = 24*60*60
age = int(age)*86400
for file in os.listdir(dir):
now = time.time()
filepath = os.path.join(dir, file)
modified = os.stat(filepath).st_mtime
if modified < now - age:
if os.path.isfile(filepath):
os.remove(filepath)
print 'Deleted: %s (%s)' % (file, modified)
No comments:
Post a Comment