作为对我之前问题的更新,我将发布到目前为止的脚本,前两个任务我已经成功地编写了脚本,给我留下了不到 30 天的备份,而当更老时,只有在星期天创建的备份。但是,我无法完成第三个任务。谁能给我一些关于如何完成第三项任务的指示?任何帮助将不胜感激。
到目前为止,这是我的代码:
Function FirstCheck{
$Today = GET-Date
#Check for *.BAK files to see if older than 30 days.
$BackupsOlderThan30 = GET-CHILDITEM C:\Temp\OnTracBak\ –filter *.BAK | WHERE { (($Today - $_.LastWriteTime).Days –gt 30 ) }
#Check for files older than 30 days and that are not Sunday
$NotWeeklyBackups=$BackupsOlderThan30 | where { ($_.LastWriteTime ).DayOfWeek –ne ’Sunday’ }
$NotWeeklyBackups | REMOVE-ITEM
$NotWeeklyBackups.Count
}
我可能对你有一个问题/小挑战。我会尽量解释清楚。
情况:我们公司为我们的客户使用 SLA。
此 SLA 中的一项是备用条款...在这里我们定义了一些规则:
- 从今天起的前 30 天,应每天进行备份并保存。
- 第二个月和第三个月应该每周备份一次
- 对于第四个月到第二十四个月,应每月保存一份备份。
现在,每天都会进行备份。因此,我们的备份文件夹目前的大小约为 4TB。(很大。)
当然,我们可以手动跟踪和删除或保存我们的备份文件,但当然,我想使用 Powershell 脚本自动执行此操作。
该脚本应执行以下操作: 检查 .bak 和 .trn 文件的文件夹和子文件夹。获取这些文件的日期并应用以下规则:
- 如果文件存在 1 到 30 天,请保留所有文件。
- 如果文件在第二个月和第三个月之间,请每周(星期日)进行完整备份(删除适用于 2. 的其他备份文件)
- 如果文件在第 4 个月和第 24 个月之间,请从每月的第 4 周开始进行完整备份...(删除适用于 3. 的其他备份文件)
目前我不知道如何或从哪里开始编写脚本,或者显然如何执行这些扩展搜索...... :-(