我计划通过关闭虚拟机并将vhd文件从生产容器复制到备份容器来备份我的Azure vhd文件。如何自动化删除备份容器中一周前的vhd文件?
我计划通过关闭虚拟机并将vhd文件从生产容器复制到备份容器来备份我的Azure vhd文件。如何自动化删除备份容器中一周前的vhd文件?
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 12:01AM
Register-ScheduledJob -Name DeleteMyOldFiles -Trigger $taskTrigger -ScriptBlock {
$isOldDate = [DateTime]::UtcNow.AddDays(-7)
Get-AzureStorageBlob -Container "[YOUR CONTAINER NAME]" |
Where-Object { $_.LastModified.UtcDateTime -lt $isOldDate -and $_.BlobType -eq "PageBlob" } |
Remove-AzureStorageBlob
}
LastModifiedDate
(这将是 UTC 时间)。还有几件事:
PageBlob
)进一步筛选列表。当我试图删除整个容器时,我找到了这个答案。使用Rick的答案作为模板,我想出了这个试验 假设 来确定哪些容器将被删除:
$ctx = New-AzureStorageContext -StorageAccountName $AzureAccount `
-StorageAccountKey $AzureAccountKey
$isOldDate = [DateTime]::UtcNow.AddDays(-7)
Get-AzureStorageContainer -Context $ctx `
| Where-Object { $_.LastModified.UtcDateTime -lt $isOldDate } `
| Remove-AzureStorageContainer -WhatIf
当我确定该列表应该被删除时,我使用了 -Force
以免每次都需要确认删除操作:
Get-AzureStorageContainer -Context $ctx `
| Where-Object { $_.LastModified.UtcDateTime -lt $isOldDate } `
| Remove-AzureStorageContainer -Force