Я создаю процесс удаления файлов резервных копий SQL из хранилища BLOB-объектов Azure.
В рамках моего исследования мне кажется, что единственный способ надежного поэтапного удаления резервных копий старше X дней - это прочитатьимена файлов в текстовый файл, а затем создайте второй файл с отфильтрованными результатами, основанными на строковой дате, включенной в имя файла.
Для этой задачи используются два формата даты: yyyy_MMdd и yyyyMMdd.
Мне нужно найти все файлы от 120 до 365 дней.Необходимо обработать более 50 000 файлов и найти около 500 различных строк дат.
Я знаю, что в настоящее время я могу улучшить, потому что для запуска требуется навсегда (плюс это RBAR).Как мне эффективнее обрабатывать все файлы?
Get-AzureStorageBlob -Context $context -Container "ContainerName" | SELECT name | Out-File -filepath C:\Users\name\Desktop\Deletions.txt
$Arr1 = @()
$Arr2 = @()
$collection = @()
ForEach($number in 120..365)
{
$Arr1 += (Get-Date).addDays(-$number).ToString("yyyy_MMdd")
$Arr2 += (Get-Date).addDays(-$number).ToString("yyyyMMdd")
}
$collection += $Arr1
$collection += $Arr2
ForEach ($date in $collection)
{
Get-Content -Path C:\Users\name\Desktop\Deletions.txt | Where-Object { $_ -like "*$date*" } | Out-File -filepath C:\Users\name\Desktop\DeleteThese.txt -Append
}