1

我有一个每天凌晨 3.30 点创建数据库备份的 cronjob。

文件名的命名法是 live_YYYY_MM_DD.sql.gz,其中 YYYY、MM 和 DD 是进行备份的日期。

通常,我会进去并删除较旧的备份,但我想将备份数量限制为 3 个最近的备份。有没有办法通过某种过程或脚本来做到这一点?

谢谢

编辑:

我根据http://www.thegeekstuff.com/2010/07/logrotate-examples/编辑了 logrotate.conf

4

2 回答 2

1

一个简单的 shell 脚本可以完成这项工作,但您最好学习执行此操作的标准工具:logrotate。当您对旧备份文件管理的需求发生变化时,无需修改自制脚本,只需更改 logrotate 配置条目即可。

于 2012-05-22T22:42:06.603 回答
0
ls -t live_*.sql.gz|awk 'NR>3'|xargs echo

如果这回显了正确的文件,请使用rm而不是echo. 将它放在备份脚本中的适当位置,您不需要安装 logrotate。

于 2012-05-22T22:05:42.927 回答