March 17, 2024

[PowerShell] 다중 VM 백업

사전 정보

RSV(RecoveryServiceVault): Azure에서 백업 데이터를 저장하는 스토리지
Backup Item: VM의 백업된 정보
Job을 실행하기에 전체 Backup과정을 기다리진 않는다.

Poewrshell

$azVM = Get-AzVMforeach($vm in $azVM) {    ## VM의 백업 여부 및RSV 찾기    $status = Get-AzRecoveryServicesBackupStatus -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Type AzureVM    ## Backup이 없을 경우    if($status.BackedUp -eq 0) {        Write-Host "$($vm.Name) is not backed up"    } else {        try {            $BackupContainer = Get-AzRecoveryServicesBackupContainer `                -ContainerType AzureVM `                -FriendlyName $vm.Name `                -VaultId $status.VaultId            $Item = Get-AzRecoveryServicesBackupItem `                -Container $BackupContainer `                -WorkloadType AzureVM `                -VaultId $status.VaultId            $job = Backup-AzRecoveryServicesBackupItem `                -Item $Item `                -VaultId $status.VaultId        } catch {            # BackupContainer가 2개 이상일 경우 $Item을 찾을 때 1개만 넘겨줘야 한다.             # Item의 이름이 정확하지 않을 경우 오류        }    }}

Backup-AzRecoveryServicesBackupItem 의 경우 CaseSensitive하다.
   해당 과정에서 Item이 나오지 않을 경우 VM의 이름과 Backup의 이름의 대소문자가 다른 경우일 수 있다.

Comments