linux – 分几步修剪旧备份

linux – 分几步修剪旧备份,第1张

概述我正在寻找一种稀释旧备份的方法.备份每天运行,我想在备份变旧时增加间隔. 几天之后,我想删除每日备份,只留下“星期日”备份.几周后,只应删除一个月的第一个备份. 由于我正在处理历史备份,我不能只改变命名方案. 我尝试使用’find’,但找不到合适的选项. 任何人都有可能有所帮助吗? 我知道这是历史数据,但您可能更愿意提出一个命名方案来帮助解决这个问题.在两个过程中解决此问题可能要容易得多:首先,根 我正在寻找一种稀释旧备份的方法.备份每天运行,我想在备份变旧时增加间隔.

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

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

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

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

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

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

ls -l | awk '{print "mv "  " "  ;}' > /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    donedone

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

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

总结

以上是内存溢出为你收集整理的linux – 分几步修剪旧备份全部内容,希望文章能够帮你解决linux – 分几步修剪旧备份所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1025013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存