BitTorrent Трекер RusTrek.ru
http://5.45.70.241/

Удаляем временные файлы с CRON
http://5.45.70.241/viewtopic.php?f=680&t=46533
Страница 1 из 1

Автор:  RusTrek [ 2012-07-03 00:13 ]
Заголовок сообщения:  Удаляем временные файлы с CRON

Есть сайты, где пользователям дается возможность создавать/загружать свои файлы на сервер. Например, изображения, которые потом можно манипулировать. Если сайт популярный, то таких вот загруженных файлов может собрать очень много. Если у вас ограничено место на сервере, читайте дальше.

На помощь придет cron, планировщик задач в системах, основанных на UNIX. Многие люди сначала создают PHP скрипт для удаления ненужных файлов, а затем добавляют задание в crontab, которое будет запускать этот скрипт через определенное время.

Например, эта запись в crontab будет запускать ваш PHP скрипт каждую минуту

* * * * * php /path/to/your/script.php

При каждом запуске скрипта вам будет оправляться имэйл, если он указан. Если он не указан, письма буду отправляться на корневой (основной) адрес. В любом случае получится куча почты. Это удобна для проверки работы скрипта, так как вам будет высылаться информация об ошибках. Но после наладки скрипта, отсылку вообще можно отменить так

* * * * * php /path/to/your/script.php >/dev/null 2>&1

Но можно обойтись без PHP или других скриптов вообще, есть способ лучше и быстрее, да и с письмами возиться не надо.

Задача: каждый час удалять файлы, которые были созданы более одного часа назад.

Решение:

0 * * * * find /полный/путь/к/папке/с/файлами -type f ! \( -name 'index.html' \) -cmin +60 -exec rm {} \;

Пояснение:

0 * * * * - запускать в 0 минут каждый час, каждый день, каждый месяц, каждый день недели.
find /полный/путь/к/папке/с/файлами - искать в этой папке
-type f - нас интересуют только файлы
! \( -name 'index.html' \) - все файлы, кроме index.html
-cmin +60 - возраст файла больше 60 минут
-exec rm {} - мы хотим удалить файлы

И еще несколько примеров.

Каждые 2 часа удалять файлы, созданные больше часа назад

0 */2 * * * find /полный/путь/к/папке/с/файлами -type f ! \( -name 'index.html' \) -cmin +60 -exec rm {} \;

Каждый день в 22:00 удалять файлы, созданные больше 12 часов назад

0 22 * * * find /полный/путь/к/папке/с/файлами -type f ! \( -name 'index.html' \) -cmin +720 -exec rm {} \;

Каждые 6 часов удалять все файлы, созданные больше 3 часов назад

0 */6 * * * find /полный/путь/к/папке/с/файлами -type f -cmin +180 -exec rm {} \;

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/