gpt4 book ai didi

ruby - 假设备份每天运行,我如何只用 100 个备份副本保留最近 1 年的备份?

转载 作者:数据小太阳 更新时间:2023-10-29 08:40:14 25 4
gpt4 key购买 nike

假设我每天创建一个备份副本,并假设每个备份都是一个压缩文件,并在其文件名中包含时间戳信息。

现在,我想编写一个每天运行的脚本,删除旧备份并只保留 100 个备份。然而,这 100 个备份分布在 1 年内,因此我仍然有一个 1 年前的副本,但是我应该有更多的最近备份副本和更少的旧备份副本,即在任何给定时刻,两个幸存的连续备份之间的距离随着时间的推移,副本不断增加。

算法还应考虑到它将每天运行一次这一事实。

此外,这种算法是否有名称 - exponential range?, exponential distance?, < em>非线性备份到期?对数的东西? 什么?

如果您在答案中包含代码,我更喜欢 Ruby(但不是必需的,因为如果它是另一种语言,我可以手动将其转译为 Ruby)。

最佳答案

听起来您正在考虑类似 Tower of Hanoi 的事情.磁带备份系统有时使用它作为管理备份磁带的方式。维基百科文章有几种算法。在学习递归时,它通常用作编程练习。

该游戏的基础是将一堆不同大小的圆盘从一个桩子移动到另一个桩子,而无需将较大的圆盘放在较小的圆盘上。如果您有五套磁带,分别标记为 A 到 E,您最终会像这样移动它们。

ABA
CABA
DABACABA
EABACABADABACABA

最不常用的集合是 E,所以如果你在 1 月 1 日从 E 开始,你就会这样结束。

E                    Jan 1
ABA Jan 2-4
CABA Jan 5-8
DABACABA Jan 9-16
EABACABADABACABA Jan 17-Feb 1

E 集将在 1 月 17 日被覆盖。1 月 16 日的覆盖范围将如下所示。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
E D C B A

A ruby program that solves the Tower of Hanoi puzzle

关于ruby - 假设备份每天运行,我如何只用 100 个备份副本保留最近 1 年的备份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340796/

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