【发布时间】:2011-03-06 22:30:16
【问题描述】:
我们每天都会运行备份作业。
此作业会创建一个格式为 yyyyMMdd.7z 的新文件,现在我们需要自动清理我们的备份存储。
我们的备份警察说我们需要保留过去 5 天的文件,以及每个月的最后一次备份。第一步很容易,因为我有今天。但是我怎样才能保留每个月的最后一天呢?
【问题讨论】:
标签: windows command-line scripting dos powershell-2.0
我们每天都会运行备份作业。
此作业会创建一个格式为 yyyyMMdd.7z 的新文件,现在我们需要自动清理我们的备份存储。
我们的备份警察说我们需要保留过去 5 天的文件,以及每个月的最后一次备份。第一步很容易,因为我有今天。但是我怎样才能保留每个月的最后一天呢?
【问题讨论】:
标签: windows command-line scripting dos powershell-2.0
为了保存每个月的最后一个文件,我会浏览文件文件夹,并通过保存 yyyyMMdd.7z 中的 yyyy、mm 和 dd 来记录每个月的最后一个文件。
因此,当您阅读文件夹时,如果您获得 MM 与您已有的 mm 匹配的记录,则检查 dd。 (下)如果它与已存储的 mm 不匹配,则添加它。
如果保存的 dd 比新的更新,则删除您所在的文件。如果当前文件更新,则删除已保存的文件(通过连接 yyyy+MM+dd+".7z" 查找您保存的文件并将存储的值替换为当前文件。
【讨论】:
我们总是在夜间运行备份,因此当月的最后一次备份在下个月 1 日的头几个小时(通常是凌晨 3 点 17 分)方便地运行。那么模式就是 *01.7z 。
也许您可以用类似的方式调整备份计划?
否则,通过 select-object --last 1 管道 YYYYMM*.7z 的目录列表。将其移开,重命名(如 Archive_YYYYMMDD.7z)。然后它们很容易分开。
【讨论】: