Ответ 1
Просто создайте еще один cron:
0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1
Он найдет все резервные копии старше 30 дней и удалит их.
Я использую следующую запись 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, которая удалит дампы DB, которые старше, чем один месяц.
Любые мысли?
Просто создайте еще один cron:
0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1
Он найдет все резервные копии старше 30 дней и удалит их.
find /db_backups/ -mtime +30 -delete
Эта команда удалит резервные копии БД более 30 дней.
Существует инструмент под названием tmpreaper
, который надежно удаляет файлы, соответствующие определенным критериям, например дату доступа или изменения n дней в прошлом.