【问题标题】:Remove all files from a month but last one删除一个月内的所有文件,但最后一个
【发布时间】:2011-03-06 22:30:16
【问题描述】:

我们每天都会运行备份作业。

此作业会创建一个格式为 yyyyMMdd.7z 的新文件,现在我们需要自动清理我们的备份存储。

我们的备份警察说我们需要保留过去 5 天的文件,以及每个月的最后一次备份。第一步很容易,因为我有今天。但是我怎样才能保留每个月的最后一天呢?

【问题讨论】:

    标签: windows command-line scripting dos powershell-2.0


    【解决方案1】:

    为了保存每个月的最后一个文件,我会浏览文件文件夹,并通过保存 yyyyMMdd.7z 中的 yyyy、mm 和 dd 来记录每个月的最后一个文件。

    因此,当您阅读文件夹时,如果您获得 MM 与您已有的 mm 匹配的记录,则检查 dd。 (下)如果它与已存储的 mm 不匹配,则添加它。

    如果保存的 dd 比新的更新,则删除您所在的文件。如果当前文件更新,则删除已保存的文件(通过连接 yyyy+MM+dd+".7z" 查找您保存的文件并将存储的值替换为当前文件。

    【讨论】:

      【解决方案2】:

      我们总是在夜间运行备份,因此当月的最后一次备份在下个月 1 日的头几个小时(通常是凌晨 3 点 17 分)方便地运行。那么模式就是 *01.7z 。

      也许您可以用类似的方式调整备份计划?

      否则,通过 select-object --last 1 管道 YYYYMM*.7z 的目录列表。将其移开,重命名(如 Archive_YYYYMMDD.7z)。然后它们很容易分开。

      【讨论】:

      • 我会向@Peter 提出一个类似的解决方案 - 看看是否可以更改备份计划以保留每个月的第一天,这就是您的模式所引导的地方。
      • 简单是可靠性的关键。可靠性是备份的关键。
      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 2020-03-03
      • 1970-01-01
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      相关资源
      最近更新 更多