У меня есть каталог хранилища на моем апачском сервере, и я должен удалить все файлы и папки в нем каждые 6 часов.
Для достижения этого, я добавил следующую строку к crontab файлу:
* */6 * * * root find ~/project/storage -type f -mmin +720 -delete
Я выполнил команду вручную - она работает.
Крон также работает, и я получаю следующую строку в журналах:
CRON[31641]: (root) CMD (find ~/project/storage -type f -mmin +720 -delete)
Но в действительности, это не удаляет файлы, и я не понимаю почему.
В чем Вы ожидаете "~" ~/project/storage
? 1 вещь, которую я могу гарантировать Вам, состоит в том, что это НЕ расширится до/home/$USER/.
Решение: всегда используйте явный (/абсолютный) пути при использовании любого из кронов.
И относительно Вашего метода подсказка: Я никогда не делал бы этого как это. Если бы я был Вами, то я создал бы сжатый файл tar с меткой времени сначала, то удалил бы файлы и хранил бы сжатый файл tar в другом каталоге и удалил бы те файлы tar после льготного периода (как неделя или месяц или даже после года). Я не могу сказать Вам, как часто тот метод сохранил мою кожу за прошлые 25 лет. Если даже решить вопрос от клиента, спрашивающего, что произошло с некоторым действием, они сделали.