gpt4 book ai didi

linux - 分几步修剪旧备份

转载 作者:IT王子 更新时间:2023-10-29 01:11:16 26 4
gpt4 key购买 nike

我正在寻找一种减少旧备份的方法。备份每天运行一次,随着备份时间的推移,我想增加间隔。

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

由于我处理的是历史备份,我不能只更改命名方案。

我尝试对其使用“查找”,但找不到正确的选项。

有人有什么可以帮助的吗?

最佳答案

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

如果 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/

那么您的问题将简化为计算要保留和删除的名称。这个问题比搜索所有文件并尝试根据文件的创建时间选择要保留和删除的文件要容易得多。 (查看 date "+%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

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

一旦控制了过去的备份,就可以从 date --date="Last Year""+%Y" 生成 2010,以及其他改进,因此它可以处理当月的“每周一次”并永远保持 self 。

关于linux - 分几步修剪旧备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com