恢复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




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