Powershell 根据SLA管理备份的最后一部分需要帮助
作为对我前面问题的更新,我将发布到目前为止的脚本,这是我成功编写的前两项任务,留给我的备份时间不到30天,如果备份时间较长,则只在周日创建备份。然而,我无法完成第三项任务。有人能给我一些关于我如何完成第三项任务的建议吗?任何帮助都将不胜感激 这是我目前的代码: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
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中的一项是备份子句。。。
在这里,我们定义了两条规则:
目前,我不知道如何或从哪里开始编写脚本,也不知道如何执行这些扩展搜索…:-(使用
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。