1

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

出于我的目的Wait-AzRecoveryServicesBackupJob,cmdlet 不适合,因为 Azure 备份总是需要 10 分钟来拍摄快照,并且需要 3-24 小时才能将该快照传输到 Vault。我怎样才能等到拍摄快照? 在此处输入图像描述

4

1 回答 1

1

您将需要设置自己的轮询循环,但不幸的Get-AzRecoveryServicesBackupJob是没有您需要的属性。Powershell 中有两个选项可供您使用——REST APICLI

获得工作信息后,您可以在下方找到各个任务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!"
于 2020-08-28T20:13:40.370 回答