У меня есть эта строка в моем crontab для удаления старых файлов:
1 * * * * find /var/log/abc/ -mtime +7 -type f -delete
К сожалению, это не работает.
Я попытался разрешить всем пользователям очистить эту папку, используя
chmod +777 /var/log/abc
Но chmod не работал. Что еще я мог попробовать?
Следуя предложениям по регистрации вывода, я обнаружил, что это в журналах:
/bin/sh: 1: find: not found
Поэтому я думаю, что мне нужно правильно указать свой путь ...
В качестве хорошей практики добавьте пользователя, который будет запускать этот crontab.
1 * * * * root find /var/log/abc/ -mtime +7 -type f -delete
Вы доказали, что находка корректно работает вне cron?
Попробуйте выполнить его вручную и посмотрите, что произойдет, с cron все в порядке.
В качестве второй полезной практики попробуйте записать то, что cron делает в syslog, например, используя logger:
1 * * * * root find /var/log/abc/ -mtime +7 -type f -delete 2>&1 | logger -t cron_find_delete
В
2> & 1
в конце собирается бросить в регистратор Sterr и stdout.