保留策略是“保留最近7次备份(上周),然后保留星期五备份3个月,然后保持每月上个星期五备份一年”。根据自定义日期过滤器删除旧文件
以下是涵盖两个保留条件的脚本,但无法完成第三个条件,即“每个月的上个星期五备份一年”。需要帮助使IF块相同。
编辑:解决方案将文件移动到不同的文件夹中,然后将单独的保留脚本应用到单独的文件夹将不可能,因为里面有很多子文件夹。由于这全部用于备份文件,因此移动文件会使我们的依赖恢复过程更加复杂,否则代码将需要在所有服务器上进行调整。
#----- define folder where files are located ----#
$TargetFolder = "C:\Users\chsa\Desktop\Retention"
#----- define extension ----#
$Extension = "*.txt"
#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)
#----- get files based on lastwrite filter and specified folder ---#
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse
foreach ($File in $Files)
{
if ($File -ne $NULL -and $File.LastWriteTime -lt (Get-Date).AddYears(-1))
{
Remove-Item $File.FullName | Out-Null
Write-Host $File
}
if ($File -ne $NULL -and $File.LastWriteTime -ge (Get-Date).AddMonths(-3) -and $File.LastWriteTime -lt (Get-Date).AddDays(-7) -and $File.LastWriteTime.DayOfWeek -ne "Friday")
{
Remove-Item $File.FullName | Out-Null
Write-Host $File
}
}
'“$ LastWrite”' - >'$ LastWrite' –
作为实现您的保留策略:移动备份()你想清理之前保留到不同的文件夹,即移动从周五备份将“每日”文件夹设置为“每周”文件夹并带有单独的清理任务。为每月备份做同样的事情。 –
谢谢Ansgar,但这是不可能的,因为有很多子文件夹,以这种方式设置可能会有风险。 –