使用 CLI 将快照导出/复制到不同区域中的存储帐户
此脚本将托管快照导出到不同区域中的存储帐户。 它首先会生成快照的 SAS URI,然后使用它将快照复制到不同区域中的存储帐户。 使用此脚本将托管磁盘的备份保留在灾难恢复的不同区域。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
先决条件
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
示例脚本
登录 Azure
使用以下脚本通过其他订阅登录,将 <Subscription ID>
替换为 Azure 订阅 ID。 如果没有 Azure 试用版订阅,请在开始前创建 Azure 试用版订阅。
az cloud set -n AzureChinaCloud
az login
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
运行脚本
# Verified per Raman Kumar as of 2/23/2022
# <FullScript>
#Provide the subscription Id where snapshot is created
subscriptionId="<subscriptionId>"
#Provide the name of your resource group where snapshot is created
resourceGroupName=myResourceGroupName
#Provide the snapshot name
snapshotName=mySnapshotName
#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: /storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600
#Provide storage account name where you want to copy the snapshot.
storageAccountName=mystorageaccountname
#Name of the storage container where the downloaded snapshot will be stored
storageContainerName=mystoragecontainername
#Provide the key of the storage account where you want to copy snapshot.
storageAccountKey=mystorageaccountkey
#Provide the name of the VHD file to which snapshot will be copied.
destinationVHDFileName=myvhdfilename
az account set --subscription $subscriptionId
sas=$(az snapshot grant-access --resource-group $resourceGroupName --name $snapshotName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)
az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas
# </FullScript>
清理资源
运行以下命令来删除资源组、VM 和所有相关资源。
az group delete --name myResourceGroupName
示例参考
此脚本使用以下命令为托管快照生成 SAS URI,并使用 SAS URI 将快照复制到存储帐户。 表中的每条命令均链接到特定于命令的文档。
命令 | 说明 |
---|---|
az snapshot grant-access | 生成只读 SAS,用于将基础 VHD 文件复制到存储帐户或将其下载到本地 |
az storage blob copy start | 将 blob 从一个存储帐户异步复制到另一个存储帐户 |
后续步骤
有关 Azure CLI 的详细信息,请参阅 Azure CLI 文档。
可以在 Azure Linux VM 文档中找到其他虚拟机和托管磁盘 CLI 脚本示例。