捕获目录和内容,仅轮换最近三天

捕获目录和内容,仅轮换最近三天

我们当前的备份方法要求我们捕获 Tomcat 目录及其所有内容。这样做的原因是,备份使得在发生灾难时重新部署更加容易。

它根据日期轮换,所以我们会有一周的备份。问题是这些备份占用了太多磁盘空间,而我们真的不需要那么多历史记录。

我在看日志旋转,但它似乎是针对特定日志文件设置的。有没有办法让 logrotate 捕获目录和内容,提供三天的滚动历史记录?或者有更好的选择吗?

答案1

我有过类似的需求。我的解决方案是将每日备份备份到目录,然后根据日期进行修剪。

find /path/to/backups/ -name 'tomcat*.tar.bz2' -atime +3 -mtime +3 -exec rm {} \;
DATE=$(date '+%Y-%m-%d')
tar -C /path/to/tomcat/root -cjvf /path/to/backups/tomcat-${DATE}.tar.bz2 .

显然,把这个放到 cron 中。每天运行一次。

答案2

那么使用-u选项tar(仅更新较新的文件)并每周压缩文件怎么样?

另外,请考虑一下:磁盘空间真的是这么大的问题吗?考虑到最近硬盘的价格如此低廉,与购买 1 TB 空间然后忘掉它相比,花一个小时的时间做这件事值得吗?

相关内容