加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 分几步修剪旧备份

发布时间:2020-12-14 00:51:12 所属栏目:Linux 来源:网络整理
导读:我正在寻找一种稀释旧备份的方法.备份每天运行,我想在备份变旧时增加间隔. 几天之后,我想删除每日备份,只留下“星期日”备份.几周后,只应删除一个月的第一个备份. 由于我正在处理历史备份,我不能只改变命名方案. 我尝试使用’find’,但找不到合适的选项. 任
我正在寻找一种稀释旧备份的方法.备份每天运行,我想在备份变旧时增加间隔.

几天之后,我想删除每日备份,只留下“星期日”备份.几周后,只应删除一个月的第一个备份.

由于我正在处理历史备份,我不能只改变命名方案.

我尝试使用’find’,但找不到合适的选项.

任何人都有可能有所帮助吗?

解决方法

我知道这是历史数据,但您可能更愿意提出一个命名方案来帮助解决这个问题.在两个过程中解决此问题可能要容易得多:首先,根据日期重命名目录,然后选择要保留的目录.

如果ls -l输出中的所有目录日期看起来都足够好,您可以快速进行近似:

ls -l | awk '{print "mv " $8 " "  $6;}' > /tmp/runme

查看/ tmp / runme,如果看起来不错,可以使用sh / tmp / runme运行它.您可能希望修剪条目或类似的东西,由您决定.

如果所有备份都存储在名为的目录中,例如:

2011-01-01/
2011-01-02/
2011-01-03/
...
2011-02-01/
2011-02-02/
...
2011-03-07/

然后你的问题将减少到计算要保留和删除的名称.这个问题比搜索所有文件并尝试根据它们的制作时选择要保留和删除的文件要容易得多. (请参阅日期“%Y-%m-%d”输出以快速生成此类名称.)

一旦方便地命名,您可以使用如下脚本保留每个月的第一个备份:

for y in `seq 2008 2010`
    do for m in `seq -w 1 12`
            do for d in `seq -w 2 31`
                    do echo "rm $y-$m-$d"
            done
    done
done

保存其输出,检查它:)然后运行输出,类似于重命名脚本.

一旦你控制了过去的备份,那么你可以从日期生成2010 –date =“去年”“%Y”,以及其他改进,以便它处理当前月份的“每周一次”并保持自己永远向前.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读