PS скрипт удаления устаревших резервных копий из общей папки Windows.

Обычной стратегией сохранения резервных копий является:

  1. Держать последние 7 дневных
  2. Держать последние 4 недельных
  3. Держать последние 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

Оставьте ответ

Ваш адрес email не будет опубликован.

÷ 1 = 7