Вот понадобился скрипт, и оказалось хер найдешь в рунете (
Самый рабочий вариант позаимствован с http://www.grahamlyons.com/articles/view/using-python-to-delete-old-files-and-keep-newest-ones
Адаптация ниже:
#!/usr/bin/env python
#-*-coding:utf-8-*-
from operator import itemgetter, attrgetter
import glob, os, sys
def sort_files_by_last_modified(files): #вывод отсортированых по дате изменения файлов
fileData = {}
for fname in files:
fileData[fname] = os.stat(fname).st_mtime
fileData = sorted(fileData.items(), key = itemgetter(1))
return fileData
def delete_oldest_files(sorted_files, keep = 3): #выводит список файлов по маске, оставляя 3 самых новых
delete = len(sorted_files) - keep
for x in range(0, delete):
print "Удаляю: " + sorted_files[x][0]
os.remove(sorted_files[x][0])
def print_usage(): #справка по использованию
print """
Инструкция:
1. delete_files '/path/to/files/pre_*.ext' №
<№ - оставить свежих, по-умолчанию = 3>
например delete_files '/home/root/files/*.jpg' 5 - оставить 5 свежих, остальные удалит
2. delete_files -h вывод справки.
"""
if len(sys.argv) < 2 or sys.argv[1] == '-h':
print_usage()
sys.exit(1)
keep = 3
if len(sys.argv) > 2:
keep = int(sys.argv[2])
file_paths = glob.glob(sys.argv[1]) #найти все файлы по маске в указанной директории
sorted_files = sort_files_by_last_modified(file_paths) #отсортировать файлы по времени модификации
delete_oldest_files(sorted_files, keep) #удалить старые файлы, новые оставить
Комментариев нет:
Отправить комментарий