创建Azure Blob Snapshot的脚本
在前面的文章中介绍了如何创建Azure Blob Snapshot。那篇文章中创建的脚本思路是:遍历所有Storage Account,找到所有vhd文件,进行Snapshot的创建。
但这种方式不够严谨,有可能是已经删除了的VM,不需要再进行Snapshot的创建工作。
本文将采用获取Subscription下所有VM,如果这台虚拟机是运行状态,就去得到其OS Disk和Data Disk,对其进行创建Snapshot的工作。
具体的脚本如下:
$vms = Get-AzureVM
foreach ($vm in $vms)
{
if($vm.Status -eq "ReadyRole")
{
$osblobname = ($vm.VM.OSVirtualHardDisk).MediaLink.ToString().Split("/")[-1]
$osblobcontainer = ($vm.VM.OSVirtualHardDisk).MediaLink.ToString().Split("/")[-2]
$osblobsa = ($vm.VM.OSVirtualHardDisk).MediaLink.ToString().Split("/")[-3].Split(".")[0] $storagekey = (Get-AzureStorageKey -StorageAccountName $osblobsa).Primary
$ctr = New-AzureStorageContext -StorageAccountName $osblobsa -StorageAccountKey $storagekey -Environment AzureChinaCloud $blob = Get-AzureStorageBlob -Container $osblobcontainer -Context $ctr -Blob $osblobname
$blob.ICloudBlob.CreateSnapshot()
#write-host $blob.Name $count = $vm.VM.DataVirtualHardDisks.Count for($i=0;$i -lt $count;$i++)
{
$datablobname = ($vm.VM.DataVirtualHardDisks)[$i].MediaLink.ToString().Split("/")[-1]
$datablobcontainer = ($vm.VM.DataVirtualHardDisks)[$i].MediaLink.ToString().Split("/")[-2]
$datablobsa = ($vm.VM.DataVirtualHardDisks)[$i].MediaLink.ToString().Split("/")[-3].Split(".")[0]
$storagekey = (Get-AzureStorageKey -StorageAccountName $datablobsa).Primary
$ctr = New-AzureStorageContext -StorageAccountName $datablobsa -StorageAccountKey $storagekey -Environment AzureChinaCloud $blob = Get-AzureStorageBlob -Container $datablobcontainer -Context $ctr -Blob $datablobname
$blob.ICloudBlob.CreateSnapshot()
#write-host $blob.name
}
}
}
测试时,可以把
$blob.ICloudBlob.CreateSnapshot()
标注;
把
#write-host $blob.name
撤销标注。
如果正确,可以打印所有OS Disk和Data Disk的文件名。
创建Azure Blob Snapshot的脚本的更多相关文章
- 删除老的Azure Blob Snapshot
客户有这样的需求:每天需要对VM的数据进行备份,但如果备份的时间超过一定的天数,需要进行清除. 本文也是在前一篇Azure Blob Snapshot上的优化. "Azure blob St ...
- Azure blob Storage Snapshot
用户虚拟机硬盘的备份是客户在部署云应用中是一个非常重要的部分. 目前有多种平台的备份方法: 捕获镜像:可以采用Capture的方式(powershell命令为Save-AzureVMImage)捕获虚 ...
- 使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus
更多内容,关注公众号:来学云计算 场景: 某设备定时于每天23:00左右将一天的运行日志.devicelogtxt上传到Azure Blob,期待Blob文件上传后, 自动通过Azure Functi ...
- Python 操作 Azure Blob Storage
笔者在<Azure 基础:Blob Storage>一文中介绍了 Azure Blob Storage 的基本概念,并通过 C# 代码展示了如何进行基本的操作.最近笔者需要在 Linux ...
- PowerShell 操作 Azure Blob Storage
本文假设已经存在了一个 Azure Storage Account,需要进行文件的上传,下载,复制,删除等操作.为了方便查看 PowerShell 代码执行的结果,本文使用了 MS 发布的一个 Azu ...
- Azure上MySQL的离线备份:将备份拷贝到Azure Blob上
公司在Azure的Iaas虚拟机上部署有好几台MySQL数据库,至于没有选择Azure Database for MySQL,是因为预算有限(钱不够啊!说多了也是泪,坑的还是DBA自己).选择了Iaa ...
- 【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
问题描述 如何把开启NFS协议的Azure Blob挂载到Linux虚拟机中呢? [答案]:可以使用 NFS 3.0 协议从基于 Linux 的 Azure 虚拟机 (VM) 或在本地运行的 Linu ...
- Azure机器学习入门(二)创建Azure机器学习工作区
我们将开始深入了解如何使用Azure机器学习的基本功能,帮助您开始迈向Azure机器学习的数据科学家之路. Azure ML Studio (Azure Machine Learning Studio ...
- Azure Blob Storage 基本用法 -- Azure Storage 之 Blob
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Table storage ...
随机推荐
- What Every Computer Scientist Should Know About Floating-Point Arithmetic
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
- Webpack探索【2】--- 安装、项目初始化、webpack.config.js配置文件
本文主要讲安装.项目初始化.webpack.config.js配置文件方面的内容.
- CMDB的四种模式
为什么要有CMDB? CMDB --Configuration Management Database 配置管理数据库. 1.为了实现资产的自动采集,资产的自动更新, 为了搭建公司自动化平台的基础则需 ...
- Java注释Override、Deprecated、SuppressWarnings
在J2SE5.0的java.lang包中预定义了三个注释:Override.Deprecated和SuppressWarnings Override 这个注释的作用是标识某一个方法是否覆盖了它的父类的 ...
- python读取文件存到excel中
用xlwt模块执行代码报下面的错 ValueError: column index (256) not an int in range(256) xlwt 模块看源码说最大列只支持255列,所以超过这 ...
- model特性
1.scope http://blog.csdn.net/lissdy/article/details/51107883 2.ActiveConcern http://www.tuicool.com/ ...
- 培训笔记——Linux历史
1. 计算机有分时与实时操作系统的区分,如Dos为实时操作系统,你只能给它下达一个命令,这个命令执行完了,你才能下达下一个命令:像Linux和我们用的Windows就是分时操作系统,特点是可以并发 ...
- shiro1
基于角色的访问控制 RBAC(role based access control),基于角色的访问控制. 比如: 系统角色包括 :部门经理.总经理.(角色针对用户来划分) 系统代码中实现: //如果该 ...
- stack-铁轨问题
每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合.假设从A方向驶来的火车有n节车厢(n<1000),分别按顺序编号为1,2,...,n.假定在进入车站之前每 ...
- java入门了解10
1.IO: 1.File (一)注意: a.可以表示文件或者文件夹(也可称为目录) b.创建的File对象实际上不存在的文件只是代表了一个抽象路径 c.Windows中分隔符'\'('//'也可以); ...