我打算通過關閉我的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