php скрипт удаления старых файлов из директории

Статус
В этой теме нельзя размещать новые ответы.

lexxxus56

Мой дом здесь!
Регистрация
27 Окт 2007
Сообщения
371
Реакции
373
Нужен РНР скрипт, способный при запуске, удалять из заданной директории файлы старше (такого-то) времени создания.
Попутно, хочу спросить, можно ли запускать этот скрипт при закрытии сессии юзером. Если "да", то как ?
 
Нужен РНР скрипт, способный при запуске, удалять из заданной директории файлы старше (такого-то) времени создания.
На форуме есть примеры скриптов получающих список файлов в директории.
Добавляешь в него 2-е строки и готово.

Попутно, хочу спросить, можно ли запускать этот скрипт при закрытии сессии юзером.
Что ты имеешь в виду под закрытием сессии?
 
Нужен РНР скрипт, способный при запуске, удалять из заданной директории файлы старше (такого-то) времени создания.
Для просмотра ссылки Войди или Зарегистрируйся + Для просмотра ссылки Войди или Зарегистрируйся + stat
Попутно, хочу спросить, можно ли запускать этот скрипт при закрытии сессии юзером. Если "да", то как ?
Для просмотра ссылки Войди или Зарегистрируйся если правильно понял
 
При запуске такого пхп скрипта могут быть проблемы с правами доступа и как следствие с безопасностью, поскольку нужно будет для пхп разрешить права на запись. Лучше удалять ненужные файлы по крону.
 
Если файлы самим скриптом создаешь, то при создании просто права нужные тогда надо ставить, и все будет нормально удаляться.
А про крон верно сказано, единственное если обьем большой, лучше как разпараллелить этот процесс, ибо могут быть нромальные тормоза.
Работа с файлами это не БД тебе.
 
Если файлы самим скриптом создаешь, то при создании просто права нужные тогда надо ставить, и все будет нормально удаляться.
А про крон верно сказано, единственное если обьем большой, лучше как разпараллелить этот процесс, ибо могут быть нромальные тормоза.
Работа с файлами это не БД тебе.

Нет проблем если по крону, у меня кэш несколько тыс файлов, запускается в 3 ночи, работает макс секунду-две, тормозов не обнаружил, даже если вручную скрипт запускать.
 
Покумекавши, сделал такой скрипт:
PHP:
$date=date("His"); //узнаём текущее время
$ndate=$date+300; //задаем время удаления
//создаем базу удаляемых файлов
$dadr="delfile.bd";
$dinfo=file($dadr);
$drazmer=sizeof($dinfo);
$dn=$drazmer-1;
$dstr=explode("|", $dinfo[$dn]);
$dopen=fopen("delfile.bd","a");
 fwrite($dopen,"$filess|$ndate\r\n");
 fclose($dopen);
 if ($dstr[1] > $date) {
     echo $dstr[1],"файл пора удалять";
} else {
     echo "пока не удаляется";
}
$filess - это путь до файла
В базе "delfile.bd" появляется строка:
Код:
./dir/1.txt|151723
./dir/2.txt|151755
Как сделать, чтоб при повторе переменной $dstr[1] эта строка заменялась на новую, а не писалась еще раз, а при удалении файла, удалялась строка с адресом $filess ?
 
А зачем вообще базу вести дат, если они и так уже есть в виде атрибутов файлов в файловой системе.
 
А зачем вообще базу вести дат, если они и так уже есть в виде атрибутов файлов в файловой системе.
файл может быть создан черти-когда, а в директории появился недавно и время жизни его ограничено переменной $ndate .
 
на шелле можно сделать одной командой
find /путь/к/дире/ -atime +2w -delete
и поставить её в крон
будет удалять все файлы страше 2-ух недель
и не надо никаких пхп скриптов писать:ah:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху