蔚蓝备份。只等到拍摄快照,而不是等到它传输到 Vault

Azure Backup. Wait Only Until Snapshot Is Taken, Not Until It's Transferred to Vault

我正在编写一个 PowerShell 脚本来启动 MySQL 服务器进程,从 Azure 恢复服务启动备份,然后再次启动 MySQL 服务器进程。

就我的目的而言,Wait-AzRecoveryServicesBackupJob cmdlet 不适合,因为 Azure 备份总是需要 10 分钟来拍摄快照,并且需要 3-24 小时才能将该快照传输到 Vault。我怎样才能等到拍摄快照?

您需要设置自己的轮询循环,但遗憾的是 Get-AzRecoveryServicesBackupJob 没有您需要的属性。 Powershell 中有两个选项可供您使用——REST API or the CLI.

获得工作信息后,您可以在 properties.extendedInfo.tasksList

下找到各个任务

在 CLI 下实现它看起来像这样:

$resourceGroup = "resourceGroup"
$vaultName = "vaultName"

$jobs = az backup job list --resource-group $resourceGroup --vault-name $vaultName --start-date 28-8-2020 | convertfrom-json
$jobName = $jobs[0].name

$jobStatus = az backup job show --name $jobName --resource-group $resourceGroup --vault-name $vaultName
$taskStatus = $jobStatus.properties.extendedInfo.tasksList | Where-Object { $_.taskId -eq "Take Snapshot"}
While ( $taskStatus.status -ne Completed ) {
     Write-Host -Object "Waiting for completion..."
     Start-Sleep -minutes 1
     $jobStatus = az backup job show --name $jobName --resource-group $resourceGroup --vault-name $vaultName
     $taskStatus = $jobStatus.properties.extendedInfo.tasksList | Where-Object { $_.taskId -eq "Take Snapshot"}
}
Write-Host -Object "Done!"