Автоматическое удаление файлов и папок старше N дней

от автора

Одной из наверное классических задач системного администратора является организация общей шары (файлопомойки), для оперативного обмена данными между сотрудниками.

Одной из проблем является то что этот «Обменник» превращается в инструмент долговременного хранения файлов, что недопустимо. посему всем сотрудникам сообщаем, что данные будут регулярно удаляться через N дней после их размещения на шаре.

А сами вооружаемся powershell и task scheduler, создаем скрипт со следующим содержимым и в планировщике ставим его на ежедневное исполнение

#Дата с которой сравнивать. В этом случае -15 дней от текущей даты $date = (Get-Date).AddDays(-15) #Путь до директории откуда удалять файлы $path = "d:\data\public" #Расположение отчетов  $report = "C:\scripts\Result\file_list.txt"  #Работаем с файлами #Вывод спписка всех файлов без  папок (в т.ч. внутри папок) старше чем значение в $date $filelist = Get-ChildItem -Recurse -Path $path -file | Where-Object -Property CreationTime -lT $date   $filelist  | Sort-Object -Property CreationTime | ft CreationTime ,VersionInfo | tee $report #Удаляем файлы #$filelist | Remove-Item   #Работаем с каталогами #вывод списка пустых директорий(где нет ни файлов ни директорий) старше чем дата $date  $folderlist =  Get-ChildItem -Recurse -Path $path -Directory | Where-Object -Property LastWriteTime -lT $date | where { $_.psiscontainer -eq $true -and $_.GetFiles().count -eq 0 -and $_.GetDirectories().count -eq 0 }  #вывод списка пустых директорий (где нет файлов, но есть директории)  старше чем дата $date  #$folderlist =  Get-ChildItem -Recurse -Path $path -Directory | Where-Object -Property LastWriteTime -lT $date | where { $_.psiscontainer -eq $true -and $_.GetFiles().count -eq 0 }  $folderlist | Sort-Object -Property LastWriteTime | ft LastWriteTime ,FullName | tee $report -Append #Удаляем каталоги #$folderlist | Remove-Item

P.s чукча не писатель и не великий кодер, пишу как умею

Ссылка на гит https://github.com/fiverok/psscripts/blob/main/Del_old_files.ps1


ссылка на оригинал статьи https://habr.com/ru/articles/847576/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *