Удалить снимки Azure старше X дней - PullRequest
0 голосов
/ 20 сентября 2018

Я близок к тому, что мне нужно, но мне чего-то не хватает, потому что снимок не удаляется.Я думаю, что строка даты и времени у меня не совсем правильная, поэтому я здесь для небольшой помощи.Вот мой текущий код PS.

rg = 'snapshots'
$snapshotnames = (Get-AzureRmSnapshot -ResourceGroupName $rg).name

foreach($snapname in $snapshotnames)
{
    Get-AzureRmSnapshot -ResourceGroupName $rg  -SnapshotName $snapname |
        ?{($_.TimeCreated).ToString('yyyy-MM-dd') -lt ([datetime]::Today.AddDays(-1).tostring('yyyy-MM-dd'))} |
        remove-azurermsnapshot -force
} 

Имя снимка отформатировано следующим образом: Testvm --- 2018-09-20

$timestamp = Get-Date -f ---yyyy-MM-dd
$snapshotName = $vmInfo.Name + $timestamp

Итак, ядумаю, что моя проблемная область это часть

?{($_.TimeCreated).ToString('yyyy-MM-dd') -lt ([datetime]::Today.AddDays(-1).tostring('yyyy-MM-dd'))} | remove-azurermsnapshot -force

1 Ответ

0 голосов
/ 21 сентября 2018

Попробуйте команду ниже, образец удаляет снимки старше 10 дней.

rg = 'snapshots'
$snapshotnames = (Get-AzureRmSnapshot -ResourceGroupName $rg).name

foreach($snapname in $snapshotnames)
{
    Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddDays(-10))} | remove-azurermsnapshot -force
}

Моя тестовая команда для определения :

Get-AzureRmSnapshot -ResourceGroupName joywebapp -SnapshotName joytestss1 | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddDays(-10))} | remove-azurermsnapshot -force

enter image description here

Мой снимок :

enter image description here

Также проверьте журналына портале :

enter image description here

Вот аналогичная проблема, обратитесь к этой ссылке .

...