保留策略是「保留最近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,但這是不可能的,因爲有很多子文件夾,以這種方式設置可能會有風險。 –