15 49.0138 8.38624 1 0 4000 1 https://kadirkozan.com.tr 300 0

Veeam Backup and Replication ile Yedeklenmeyen Sanal Makinelerin Listelenmesi (vSphere Platform)

Merhabalar, bu makalemde vSphere ortamında, Veeam Backup and Replication uygulaması ile yedeklemesi yapılmayan sanal makinelerin listeslenmesi için gerekli olan script’i sizlerle paylaşıyor olacağım.

Bu script çalıştırılmadan önce mutlaka VMware PowerCLI uygulamasının Veeam Backup and Replication sunucusu üzerinde kurulumu gerekmektedir. PowerCLI kurulumu için aşağıdaki komutu çalıştırmanız yeterli olacaktır.

Install-Module -Name VMware.PowerCLI

Aşağıdaki script içeriğini Powershell ISE de yada .ps1 uzantısı ile kaydedip çalıştırınız.

Bu scirpt içerisindeki “$vcenter” ve “DaysToCheck” satırını yapınıza uygun olacak şekilde düzenleyiniz.

#Verify if Virtual Machines have been backed up

asnp "VMware.VimAutomation.Core" -ErrorAction SilentlyContinue
asnp "VeeamPSSnapIn" -ErrorAction SilentlyContinue

#-------------------------------------------------------
# Configuration
$vcenter = "vxvcenter.kadirkozan.com.tr"
$excludevms=@()       # eg $excludevms=@("vm1","vm2")
$DaysToCheck= 1
#-------------------------------------------------------

# Connect to vCenter
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false | out-null
Connect-ViServer $vcenter | out-null

# Build hash table with excluded VMs
$excludedvms=@{}
foreach ($vm in $excludevms) {
    $excludedvms.Add($vm, "Excluded")
}

# Get a list of all VMs from vCenter and add to hash table, assume Unprotected
$vms=@{}
foreach ($vm in (Get-VM | Where-Object {$_.PowerState -eq "PoweredOn"} | ForEach-Object {$_ | Select-object @{Name="VMname";Expression={$_.Name}}})) {
  if (!$excludedvms.ContainsKey($vm.VMname)) {
        $vms.Add($vm.VMname, "Unprotected")
    }
}

# Find all backup job sessions that have ended in the last week
$vbrsessions = Get-VBRBackupSession | Where-Object {$_.JobType -eq "Backup" -or $_.JobType -eq "Replica" -and $_.EndTime -ge (Get-Date).adddays(-$DaysToCheck)}

# Find all successfully backed up VMs in selected sessions (i.e. VMs not ending in failure) and update status to "Protected"
$backedupvms=@{}
foreach ($session in $vbrsessions) {
    foreach ($vm in ($session.gettasksessions() | Where-Object {$_.Status -ne "Failed"} | ForEach-Object { $_ | Select-object @{Name="VMname";Expression={$_.Name}}})) {
      if($vms.ContainsKey($vm.VMname)) {
            $vms[$vm.VMname]="Protected"
        }
    }
}

# Output VMs in color coded format based on status.
foreach ($vm in $vms.Keys)
{
  if ($vms[$vm] -eq "Protected") {
      write-host -foregroundcolor green "$vm was backed up in the past $DaysToCheck day(s)"
  } else {
      write-host -foregroundcolor red "$vm was NOT backed up in the past $DaysToCheck day(s)"
  }
}

Download Script

Script’in çalışması tamamlandıktan sonra içerikte belirlediğiniz değer (günden) den fazla süredir yedeklenmeyen sanal makineler kırmızı renkle belirtilecektir.

Paylaş:
Kategori:Veeam
ÖNCEKİ YAZI
Exchange Server, Active Directory Üzerine Kullanılması Neden Önerilmez?
SONRAKİ GÖNDERİ
HPE Service Pack for ProLiant (SPP) Version 2021.05.0