Обычной стратегией сохранения резервных копий является:
- Держать последние 7 дневных
- Держать последние 4 недельных
- Держать последние 12 месячных
и т.д. по необходимости.
Если бэкапы делаются ежедневно, то встает вопрос удаления устаревших резервных копий.
Скрипт PS:
#http://forum.oszone.net/thread-353351.html
$folder = "TARGET_FOLDER"
#"Удаляем файлы старше одного года" >> C:\Scripts\log.txt
$year = (Get-Date).AddDays(-365);
Get-ChildItem $folder *.zip -File | Where-Object {$fdate = $_.LastWriteTime; $fdate -lt $year} | Remove-Item -Confirm:$false
#"Удаляем файлы старше одного месяца кроме созданных 1 числа месяца" >> C:\Scripts\log.txt
$week = (Get-Date).AddDays(-30);
Get-ChildItem $folder *.zip -File | Where-Object {$fdate = $_.LastWriteTime; $fdate -lt $week -and $fdate.Day -ne 1} | Remove-Item -Confirm:$false
#"Удаляем файлы старше одной недели кроме последних 7, кроме созданных 1 числа месяца и кроме созданных по воскресеньям" >> C:\Scripts\log.txt
$days = (Get-Date).AddDays(-7);
Get-ChildItem $folder *.zip -File | Where-Object {$fdate = $_.LastWriteTime; $fdate -lt $days -and $fdate.Day -ne 1 -and $fdate.DayOfWeek -ne 0} | Remove-Item -Confirm:$false