CentOS: удалить старые файлы X с помощью cron

Я хочу удалить x-days old .tar & .sql файлы с помощью cronjob.

Я пробовал несколько команд, но это не сработало.

команда, такая как,

find /path/to/files -type f -mtime +10 -delete
find /path/to/folder -name '*.sql' -mtime +30 -delete
find "$FILEDIR" -mtime +14 -delete
[[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtime +14 -delete

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

1 ответ

Решение

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

Так что попробуйте это:

for filename in `find /path/to/files -type f -mtime +10`; do echo "rm $filename"; done

Это перечислит то, что это планирует сделать. Проверьте его, убедитесь, что он выглядит хорошо, затем запустите, удалив оператор echo

for filename in `find /path/to/files -type f -mtime +10`; do rm $filename; done

Если это не сработает, вы можете вывести вышеприведенное в файл и запустить его как скрипт

for filename in `find /path/to/files -type f -mtime +10`; do echo "rm $filename"; done > myremove.sh

Тогда запустите

sh -x ./myremove.sh 

И проверьте вывод выше на наличие ошибок.

После того, как вы исправили ошибку, вы можете добавить в cron одной командой или скриптом

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