Powershell 根据SLA管理备份的最后一部分需要帮助

Powershell 根据SLA管理备份的最后一部分需要帮助,powershell,backup,Powershell,Backup,作为对我前面问题的更新,我将发布到目前为止的脚本,这是我成功编写的前两项任务,留给我的备份时间不到30天,如果备份时间较长,则只在周日创建备份。然而,我无法完成第三项任务。有人能给我一些关于我如何完成第三项任务的建议吗?任何帮助都将不胜感激 这是我目前的代码: Function FirstCheck{ $Today = GET-Date #Check for *.BAK files to see if older than 30 days. $BackupsOlderThan30 = GET

作为对我前面问题的更新,我将发布到目前为止的脚本,这是我成功编写的前两项任务,留给我的备份时间不到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.适用的其他备份文件)
  • 如果文件在第四个月到第二十四个月之间,请在每个月的第四周进行完整备份。。。(删除3.适用的其他备份文件)

  • 目前,我不知道如何或从哪里开始编写脚本,也不知道如何执行这些扩展搜索…:-(

    使用
    Get-ChildItem
    cmdlet列出文件。每个文件都有一个
    LastWriteTime
    属性,通过该属性可以筛选集合。筛选的业务规则留给读者作为练习。简单的筛选示例如下所示

    $files = @(gci path-to-files) # Force gci to return an array
    $cutPoint = (get-date).addDays(-30) # Get date 30 days ago
    $filesToPrune = $files | ? { $_.LastWriteTime -lt $cutPoint } # Files for archive process
    

    感谢您对这一问题的部分回答。目前我已经找到了一种方法,可以让前两项任务正常工作,但是,我无法让最后一项任务正常工作,我将用我现有的解决方案更新我的问题,但希望在此请求您或任何人的帮助,让任务3正常工作……提前谢谢!@RoelofW您需要的是正式确定SLA规则。口头解释只是起点。写出一个伪代码实现,然后开始使用Powershell进行处理。计算“每月第n周”是特定于区域设置的。例如,在美国,星期天是一周的第一天,而列表星期一是许多其他区域设置的第一天。@RoleofW如何重新定义SLA?对于较旧的备份集,只保留每个月的最后一次完整备份。无需计算第n周。@vonPrynx需要做的是;我需要从e在我的“firstcheck”功能(它像一个符咒一样工作)后留下的文件,其中哪些文件超过4个月,并删除所有不等于第四个(或最后一个)的文件每个月的第几周……事实上,我需要保留每个月的最后一次完整备份,但是……我一直在思考如何确定每个月的最后一次备份…@RoelofW请为每个月的第n周计算单独发布一个问题。这个问题并不简单。有些问题可以轻松转换为PSH。