Как удалить старые файлы с сервера?

AN
На сайте с 05.06.2004
Offline
243
3200

Задачка, казалось бы, тривиальнейшая.

Есть некая папочка /path/to/folder, надо из нее и всех ее подпапок удалить все файлы, к которым пользователи не обращались ни разу в течение, скажем, месяца.

Казалось бы, все элементарно...

find /path/to/folder -atime 30 -name "*.ext" -delete 

Но... Эта команда ничего не удаляет по той простой причине, что обращения к этим файлам все же были... во время резервного копирования!

Есть какие-то идеи, как все же удалить древние и никому не нужные файлы в такой ситуации?

Учитывая то, что в каждой подпапке соседствуют и ненужные, и активно используемые файлы, и всего этих файлов несколько десятков тыщ.

Debian Lenny, дедик с рутом.

Размещу ваши баннеры на посещаемых сайтах. Места еще есть! Возможен безнал. (/ru/forum/324945) Нужны копирайтеры/рерайтеры - медики. Пишите в личку. (/ru/forum/676932)
rtyug
На сайте с 13.05.2009
Offline
263
#1

есть такая упячка, stat:

0 dev device number of filesystem
1 ino inode number
2 mode file mode (type and permissions)
3 nlink number of (hard) links to the file
4 uid numeric user ID of file's owner
5 gid numeric group ID of file's owner
6 rdev the device identifier (special files only)
7 size total size of file, in bytes
8 atime last access time in seconds since the epoch
9 mtime last modify time in seconds since the epoch
10 ctime inode change time in seconds since the epoch (*)
11 blksize preferred block size for file system I/O
12 blocks actual number of blocks allocated

посмотрите в строну: atime, ctime, mtime

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
M
На сайте с 16.09.2009
Offline
278
#2

atime - не для таких вещей, зарубите себе на носу.

Разве создавать базу используемых файлов по логам, например, веб-сервера (или как там у вас обращаются пользователи: расскажите - мы же не телепаты) - другого варианта нет и быть не может.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
AN
На сайте с 05.06.2004
Offline
243
#3
myhand:
Разве создавать базу используемых файлов по логам, например, веб-сервера (или как там у вас обращаются пользователи: расскажите - мы же не телепаты) - другого варианта нет и быть не может.

Н-да, надеялся, что все же удастся без такого гемора обойтись...

Файлы отдаются nginx-ом.

M
На сайте с 16.09.2009
Offline
278
#4
AnNik:
Н-да, надеялся, что все же удастся без такого гемора обойтись...

А Вы думать не пробовали головой предварительно?

Как система отличит обращения к файлу интересные Вам от всех остальных?

AnNik:
Файлы отдаются nginx-ом.

Тогда не вижу особых проблем и "гемора" - настройте лог, в который просто пишите пути к файлам при 200-х ответах и используйте эту информацию в скрипте очистки ненужных файлов.

zexis
На сайте с 09.08.2005
Offline
388
#5

Правильнее было бы вести базу данных (mysql) файлов в папках сайта и удалять файлы в соответствии с логикой работы сайта.

IS
На сайте с 26.03.2008
Offline
28
#6

tmpwatch --mtime --all 24 /var/cache/eaccelerator

24 кол-во часов сохранения кэша, которые не надо удалять, все остальное удаляется

использую эту команду для очистки временных файлов, для команды tmpwatch надо установить(apt-get install php5-dev) php – developer

M
На сайте с 16.09.2009
Offline
278
#7
IzhSenator:
tmpwatch --mtime --all 24 /var/cache/eaccelerator
24 кол-во часов сохранения кэша, которые не надо удалять, все остальное удаляется

Это работает магически? Или все-таки использует дату модификации файла и абсолютно бесполезно для ТС?

PS: А в вашем случае можно попросту использовать find c mtime без изобретения трехколесных велосипедов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий