Задание Cron для удаления файлов, созданных до определенного времени

У меня есть эта работа cron для очистки временной папки, которую я имею один раз в день:

rm -rf /home/username/public_html/temp/*

Я хочу, чтобы это задание cron удаляло все файлы, созданные до того, как оно будет работать в течение 5 минут и более, просто чтобы убедиться, что моему сценарию эти файлы больше не нужны.

Допустим, я настроил задание cron для запуска каждый день в 10:00. Я хочу, чтобы оно удаляло все файлы в этой папке, созданные до 09:55.

Большое спасибо специалистам!


person Dido    schedule 02.12.2010    source источник


Ответы (3)


Если вы используете GNU find, попробуйте следующее:

find /home/username/public_html/temp -type f -mmin +5 -delete

Также должен работать с FreeBSD или многими другими версиями find.

person Jeffrey Hantin    schedule 02.12.2010

Альтернативным решением будет: -

укажите задание cron для выполнения файла php один раз в день.

 $dir = 'your/directory/';
  foreach(glob($dir.'*.*') as $v){
  $last_modified = filemtime($v);//get the last modified time of file
  $fmtime=date("h:i:s", $last_modified);
  $currentTime=date("h:i:s");

  if (//check here if your file is created before 09:55Am)
  unlink($v);

  }

Спасибо.

person Shakti Singh    schedule 02.12.2010
comment
Глоб *.*?? Я думаю, что ваш DOS показывает. Это будет соответствовать только файлам с точкой в ​​имени. - person Jeffrey Hantin; 02.12.2010

Подобно ответу Джеффриса, я бы предложил что-то вроде этого:

for i in `find /home/username/public_html/temp -type f -mmin +5`
    do rm $i
done
person Benubird    schedule 03.12.2010