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 одной командой или скриптом