我打算通过关闭我的vm然后将vhd文件从生产容器复制到备份容器来备份我的azure vhd文件。如何自动删除备份容器中一周前的vhd文件?如何删除azure容器中的旧文件
回答
这是开箱即用的东西。你将不得不自己编写一些代码。基本上这些步骤将是:
- 列出备份容器中的所有斑点。 Blob列表将返回blob及其属性。其中一个属性是
LastModifiedDate
(这将以UTC表示)。 - 然后,您可以将您的逻辑找到已在“x”天前修改的blob。然后,您会继续并删除这些斑点。
一些其他的东西:
- 您刚才说您的备份容器包含一些VHD文件本质上属于页面的斑点。当你列出blob时,你也会得到blob类型,所以你可以通过blob类型进一步过滤列表(=
PageBlob
) - 就自动执行进程而言,你可以将它写入PowerShell脚本,然后使用Windows调度程序。如果您愿意编写node.js,则可以使用node.js编写相同的逻辑并使用Windows Azure Mobile Service Scheduler。
如果你可以接受使用PowerShell,那么这将为你做。它将注册一个计划作业,每天运行并删除指定容器中的PageBlob。
$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
}
感谢您的脚本。我无法获得计划部分的工作,所以我将其删除并手动安排在Task Scheduler上。如果我有多个容器名称会怎么样? – user1532937
您是否使用PowerShell版本3.0?如果是这样,那么这个脚本将起作用。 –
我试图删除整个容器时发现此答案。利用里克的回答为模板,我想出了这个试验假设确定哪个容器将被删除:
$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
我感谢你发布一个更简洁的版本,我可以安排自己在任务调度器中。 –
- 1. kubelet不删除旧容器
- 2. Azure Powershell:删除多个容器中的文件
- 3. 删除旧的.lck文件
- 4. 如何在新测试之前删除旧文件内容?
- 5. 删除Azure Blob存储容器内的文件夹
- 6. bash删除旧文件
- 7. 删除旧Java文件中的SVN内容
- 8. 如何删除bitbucket中的旧提交中的大文件
- 9. 如何从Azure容器注册表中删除图像
- 10. 将文件内容复制到新文件中删除旧文件,将新文件重命名为旧文件
- 11. PowerShell的 - 删除旧文件夹,而不是旧的文件
- 12. zsh:如何删除文件夹中的内容而不删除文件夹?
- 13. 在旧提交中删除文件
- 14. 如何删除Log4Net单文件中的旧日期条目
- 15. 如何使用php删除目录中的旧文件
- 16. Azure Java SDK - 如何知道容器何时被删除
- 17. 如何从Azure中的目录中删除200k个文件?
- 18. 如何删除正在连续写入的文件的较旧内容?
- 19. 如何删除CloudKit容器?
- 20. 如何清除/删除matlab中的.txt文件的内容
- 21. 如何在删除Azure虚拟机时从存储区删除“bootdiagnostics”容器?
- 22. 如何删除文件的内容而不删除它自己?
- 23. 写新内容删除旧内容
- 24. 如何在创建新邮编时删除Zip文件的旧内容
- 25. 删除了文件浏览器中的文件删除器
- 26. 如何删除Azure文件存储文件夹中的所有文件?
- 27. 删除旧的Vim-config文件
- 28. KML并删除旧的KML文件
- 29. 删除旧的日志文件在AIX
- 30. git的MV不会删除旧文件
我没有做太多的PowerShell。你有可能列出所需代码的一些例子吗? – user1532937
您不必在PowerShell中执行此操作。您可以制作一个简单的可执行应用程序并使用Windows Scheduler进行安排。 –
感谢您的建议,但不幸的是我不是程序员。这太糟糕了Azure没有这种任务的某种类型的调度器。 – user1532937