Крон выполняет команду, но это не имеет никакого эффекта. Как зафиксировать?

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

Для достижения этого, я добавил следующую строку к crontab файлу:

* */6   * * * root   find ~/project/storage -type f -mmin +720 -delete

Я выполнил команду вручную - она работает.

Крон также работает, и я получаю следующую строку в журналах:

CRON[31641]: (root) CMD (find ~/project/storage -type f -mmin +720 -delete)

Но в действительности, это не удаляет файлы, и я не понимаю почему.

0
задан 21 January 2020 в 13:50

1 ответ

В чем Вы ожидаете "~" ~/project/storage ? 1 вещь, которую я могу гарантировать Вам, состоит в том, что это НЕ расширится до/home/$USER/.

Решение: всегда используйте явный (/абсолютный) пути при использовании любого из кронов.

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

4
ответ дан 30 January 2020 в 23:33

Другие вопросы по тегам:

Похожие вопросы: