恢復N天前的VHD快照

接上篇,我們可以創建、刪除快照了,作爲備份措施,我們還希望能恢復指定的快照,進而從VHD再將虛擬機創建出來。

本篇文章我們來使用腳本快速恢復N天前的最後一個快照到同存儲賬號下。

下面是腳本運行截圖:



運行腳本時需要注意:

1. 我們需要在提示處輸入原VHD文件的完整路徑

2. 腳本中可以定義恢復幾天前的快照

3. 要恢復到的Container必須已存在

4. 恢復的VHD文件名爲:默認前綴加原文件名


好了,下面開始上乾貨!PowerShell內容如下:

#------------------------------------------------------------------------------    
# User own the risk, otherwise exit.
# 
# Azure PowerShell Version:  3.6.0
#
# Create by Zeno. 
#------------------------------------------------------------------------------  


#登錄訂閱
#Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $(Get-Credential -UserName [email protected] -Message Login_AzureChinaCloud) |Out-Null


#定義恢復多少天前的快照
$resdays = "10"


#定義要恢復的blob路徑
$blobURi = Read-Host -prompt "`n`tPlease input the VHD URi"
$destcontainer = "upload"


$srccontainer = $blobURi.Split("/")[-2]
$blobname = $blobURi.Split("/")[-1]
$destblob = "R" + $(Get-Date).DayOfYear + "-" + $blobname


$storage = Get-AzureRmStorageAccount | Where-Object {$_.StorageAccountName -eq $blobURi.Split("/")[2].Split(".")[0] }
$srccontainer = Get-AzureStorageContainer -Context $storage.Context -Name $blobURi.Split("/")[-2]
$diff = (Get-Date).DayOfYear - $resdays
$snaps = Get-AzureStorageBlob -Context $storage.Context -Container $srccontainer.Name | Where-Object {$_.Name -eq $blobname -and $_.SnapshotTime.DayofYear -eq $diff}


#恢復當天最後一個快照
Start-AzureStorageBlobCopy -Context $storage.Context -CloudBlob $snaps.ICloudBlob[-1] -DestContainer $destcontainer -DestBlob $destblob




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章