удаление старых файлов с помощью crontab - PullRequest
10 голосов
/ 21 марта 2011

Я использую следующую запись crontab для ежедневного резервного копирования моей БД:

0 2 * * * MYSQL_PWD=password mysqldump -u user db_name > $HOME/db_backups/db_name-$(date +\%Y-\%m-\%d-\%H-\%M).sql 2>> $HOME/db_backups/cron.log

Я хочу добавить еще одну запись crontab, которая удалит дампы БД старше одного месяца.

Есть мысли?

Ответы [ 3 ]

26 голосов
/ 21 марта 2011
find /db_backups/ -mtime +30 -delete

Эта команда удалит резервные копии БД старше 30 дней.

19 голосов
/ 21 марта 2011

Просто создайте еще один крон:

0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1

Он найдет все резервные копии старше 30 дней и удалит их.

3 голосов
/ 21 марта 2011

Существует инструмент под названием tmpreaper, который безопасно удаляет файлы, соответствующие определенным критериям, таким как дата доступа или изменения n дней в прошлом.

...