azure - 如何每 10 分钟删除一次托管磁盘快照
问题描述
我有下面的脚本,我正在使用它来删除早于 10 分钟的快照并保留不早于 10 分钟的快照,我有下面的脚本,但它没有按预期工作,谁能告诉我发生了什么错误的?
foreach($snapname in $snapshotnames)
{
Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname |?{$_.Name -Like "*-Server1*"} | ?{($_.TimeCreated).ToString('yyyyMMdd') -lt ([datetime]::Now.AddMinutes(-10).tostring('yyyymmdd'))} | remove-azurermsnapshot -force
}
解决方案
您应该使用[datetime]::UtcNow
而[datetime]::Now
不是使用.tostring('yyyymmdd')
.
所以你的命令应该是:
foreach($snapname in $snapshotnames)
{
Get-AzureRmSnapshot -ResourceGroupName $rg -SnapshotName $snapname | ?{$_.Name -Like "*-Server1*"} | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddMinutes(-10))} | remove-azurermsnapshot -force
}
我的具体测试命令:
Get-AzureRmSnapshot -ResourceGroupName "<ResourceGroupName>" -SnapshotName "<SnapshotName>" | ?{($_.TimeCreated) -lt ([datetime]::UtcNow.AddMinutes(-10))} | remove-azurermsnapshot -force
结果截图:
推荐阅读
- php - Square API 对象创建
- python - 如何在数据框中每天的特定时间操作数据框列中的值
- python - 如何在数据框的列中使用字典来访问该列的值并取另一列的平均值?
- python - 如何根据条件附加具有两种不同大小的数组的列表
- python - 如何在每个带有请求的线程上获取不同的代理?
- kubernetes-helm - 是否可以从文件中的 helm 创建 yaml 对象
- c# - 让元素假装它不存在但仍然可见 WPF
- javascript - 如何在 jquery 或 c# 中为电子商务网站过滤器生成动态 URL
- python - 如何在视频上正确运行 Detectron2?
- firebase - 如何优化 Firestore 缓存和查询建模