问题
I use the following crontab record in order to daily backup my DB:
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
I want to add another crontab record that will delete the DB dumps that are older then one month.
Any thoughts?
回答1:
Just create another cron:
0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1
It will find all backups older than 30 days and delete them.
回答2:
find /db_backups/ -mtime +30 -delete
This command would delete DB backups older than 30 days.
回答3:
There is a tool called tmpreaper
that securely deletes files matching certain criteria, such as an access or modification date n days in the past.
来源:https://stackoverflow.com/questions/5375409/deleting-old-files-using-crontab