我有很多备份,如:
backup-20130528_054504_mysql.tar.gz, bill_db_201305290130.BAK.bz2, etc_20130412.tbz
这是每天完成的完整备份。
在今天之前,我有一个像这样的命令行的cron任务:
/usr/bin/find /media/backups -ctime +7 -delete
但这是个坏主意。
一台服务器在7天前停止执行新的备份(文件系统已满),所有旧的备份都被cron删除。
也许我需要一个新的脚本来替代这个“find -ctime”,它会保留一些旧的备份。
我所有的备份文件都有名称{unique_prefix} YYYYMMDD …
我想要的东西是:
为每个{unique_prefix}。
所有这些文件通过rsync,ssh等由cron下载到我的服务器。
我不喜欢重新发明轮子,而且很确定这是一个典型的任务。
请指点我的解决scheme。
我不同意dawud,认为简单的备份是最好的。
你真正需要的不是一个更聪明的方法来删除东西(虽然这不是一个坏主意,我写了类似的东西,只是保持最后的N个备份),但适当的监控你的文件系统,所以你会注意到它填满很早之前,你可以采取行动。 这样你就不会丢失你的数据。
一个shell脚本可以处理高达一定复杂度的备份。 您还有一些工具可以利用tar和rsync来完成更复杂的任务(例如rsnapshot )。
但是,看起来您需要非常精细的备份和保留策略,即shell脚本可能不适合处理,除非它不必要地复杂,并且提及的其他工具不提供。
您应该考虑使用专用软件来执行此任务。 有许多,但bacula和阿曼达浮现在脑海。