旧文件我用下面的crontab记录,以每日备份我的DB:删除使用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记录将删除数据库转储是年纪大了,然后一个月。
有什么想法?
旧文件我用下面的crontab记录,以每日备份我的DB:删除使用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记录将删除数据库转储是年纪大了,然后一个月。
有什么想法?
只需创建另一个的cron:
0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1
它会找到所有备份超过30天,并删除它们。
我们可以将要删除的文件名写入档案以供参考。 – 2013-12-05 16:14:02
当然,你可以使用'rm -v'或'find -print'来输出被删除文件的名字。 – dogbane 2013-12-06 08:58:34
find /db_backups/ -mtime +30 -delete
该命令将删除超过30天的数据库备份。
有一个名为tmpreaper
的工具,可安全删除符合某些条件的文件,例如过去的访问日期或修改日期n天。
使用logrotate(8) – knittl 2011-03-21 08:45:02
@knittle logrotate用于日志(?) – AlxVallejo 2012-08-30 22:37:53
虽然logrotate可以删除某个时代的文件,但它只能在旋转的文件上运行;不是数据库备份的典型场景。当然,您可以在logrotate配置中添加'find ... -exec rm {} \;命令(在其他答案中记录)作为脚本。这在某些情况下可能有用; [在另一个论坛上的对话线索的最后输入中的示例](http://www.directadmin.com/forum/archive/index.php/t-3654.html) – 2012-10-11 16:20:36