[Azure]ARM模式托管磁盘的快照与还原[2]——删除与恢复
来源:互联网 发布:浪迹知乎 编辑:程序博客网 时间:2024/05/17 05:59
本文中包含两个脚本,一个是删除托管磁盘快照的脚本,一个是使用托管磁盘快照还原磁盘的脚本。
比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:
删除快照的脚本:
param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory = $true)] [string]$ResourceGroupName, [Parameter(Mandatory = $true)] [string]$ManagedDiskName)[void](Select-AzureRmSubscription -SubscriptionName $SubscriptionName);$disk = Get-AzureRmDisk -ResourceGroupName $ResourceGroupName -DiskName $ManagedDiskName;if ($disk -eq $null){ Write-Host "Disk not found"; return;}$snapshots = Get-AzureRmSnapshot;$filteredSnapshots = @($snapshots | where {$_.CreationData.SourceUri -eq $disk.Id});Write-Host ("Snapshot found for disk {0}:" -f $ManagedDiskName) -ForegroundColor Yellow;$filteredSnapshots | select @{Name="Id"; Expression={$filteredSnapshots.IndexOf($_) + 1}}, @{Name="TimeCreated"; Expression={$_.TimeCreated.ToLocalTime()}}, Name | ft;$selection = (Read-Host "Please select the snapshot you want to delete, input 'a' if you want to delete all snapshots");If ($PSCmdlet.ShouldContinue("Confirm?", "=== Confirm delete Opeartion ===")){ if ($selection -eq "a") { foreach ($snapshot in $filteredSnapshots) { Write-Host ("Deleting snapshot {0}" -f $snapshot.Name) -ForegroundColor Yellow; [void](Remove-AzureRmSnapshot -ResourceGroupName $snapshot.ResourceGroupName -SnapshotName $snapshot.Name -Force); Write-Host ("Snapshot {0} deleted" -f $snapshot.Name) -ForegroundColor Green; } } else { $selection = $selection - 1; $snapshot = $filteredSnapshots[$selection]; Write-Host ("Deleting snapshot {0}" -f $snapshot.Name) -ForegroundColor Yellow; [void](Remove-AzureRmSnapshot -ResourceGroupName $snapshot.ResourceGroupName -SnapshotName $snapshot.Name -Force); Write-Host ("Snapshot {0} deleted" -f $snapshot.Name) -ForegroundColor Green; }}
还原磁盘的脚本:
param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory = $true)] [string]$ResourceGroupName, [Parameter(Mandatory = $true)] [string]$ManagedDiskName, [Parameter(Mandatory = $true)] [string]$RestoredDiskName)[void](Select-AzureRmSubscription -SubscriptionName $SubscriptionName);$disk = Get-AzureRmDisk -ResourceGroupName $ResourceGroupName -DiskName $ManagedDiskName;if ($disk -eq $null){ Write-Host "Disk not found"; return;}$snapshots = Get-AzureRmSnapshot;$filteredSnapshots = @($snapshots | where {$_.CreationData.SourceUri -eq $disk.Id});Write-Host ("Snapshot found for disk {0}:" -f $ManagedDiskName) -ForegroundColor Yellow;$filteredSnapshots | select @{Name="Id"; Expression={$filteredSnapshots.IndexOf($_) + 1}}, @{Name="TimeCreated"; Expression={$_.TimeCreated.ToLocalTime()}}, Name | ft;$selection = (Read-Host "Please select the snapshot you want to restore");$selection = $selection - 1;$snapshot = $filteredSnapshots[$selection];$restoredDiskConfig = $null;if ($snapshot.OsType -eq $null){ $restoredDiskConfig = New-AzureRmDiskConfig -AccountType $snapshot.AccountType -Location $snapshot.Location -CreateOption Copy -SourceResourceId $snapshot.Id;}else{ $restoredDiskConfig = New-AzureRmDiskConfig -AccountType $snapshot.AccountType -OsType $snapshot.OsType -Location $snapshot.Location -CreateOption Copy -SourceResourceId $snapshot.Id;}Write-Host ("Restoring data to managed disk {0}" -f $RestoredDiskName) -ForegroundColor Yellow;[void](New-AzureRmDisk -DiskName $RestoredDiskName -Disk $restoredDiskConfig -ResourceGroupName $ResourceGroupName);Write-Host "Finished" -ForegroundColor Yellow;
脚本调用示例:
删除:
还原:
阅读全文
1 0
- [Azure]ARM模式托管磁盘的快照与还原[2]——删除与恢复
- [Azure]ARM模式托管磁盘的快照与还原[1]——创建与查看
- [Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(托管磁盘)
- [Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(非托管磁盘)
- [Azure]ARM虚拟机整机磁盘快照[2]——删除快照
- [Azure]ARM虚拟机整机磁盘快照[4]——从快照还原虚拟机
- [Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(非托管磁盘)
- [Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(托管磁盘)
- [Azure]ARM虚拟机整机磁盘快照[1]——创建快照
- [Azure]ARM虚拟机整机磁盘快照[3]——清空虚拟机快照
- Azure 标准与高级托管磁盘存储的相互转换
- [Azure]ARM模式下批量清理未使用的托管磁盘
- 使用托管快照创建作为 Azure 托管磁盘存储的 VHD 的副本
- 通过递增快照备份 Azure 非托管 VM 磁盘
- elasticsearch 快照与恢复
- [Azure]使用Powershell克隆ARM虚拟机(非托管磁盘)
- [Azure]使用Powershell克隆ARM虚拟机(托管磁盘)
- Azure China下托管磁盘的使用
- 创建线程的三种方式
- 基于HBase的云盘项目复制功能总结
- 1020. Tree Traversals (25)
- 资料记录
- MyBatis的使用和SSM框架基础
- [Azure]ARM模式托管磁盘的快照与还原[2]——删除与恢复
- iOS开发 AudioServices(音效播放)的使用
- 最全面的Java多线程用法解析
- 如何禁止 网页的复制功能
- 基于nginx和redis架构的高并发框架的设计与研究
- Linux 常用命令
- Android初级开发(六)——1、SharedPreferences数据存储
- oracle 学习笔记
- 自己编写接口用于获取Hadoop Job conf 信息