Powershell Veeam Backup: Controlar las copias de seguridad por mail.

 
Un Simple Script que entra en las copias de Veeam mira si estan ok o no y guarda el resultado en un Excel
Por otro lado lo envia por correo electronico el resultado ( Dos correos electronicos)
Uno con todos los resultados y otro solo con los que han fallado
Yo los tengo en una tarea de Windows que los ejecuta a las 21.00 y tiene en cuenta los backups del dia anterior ejecutados despues de las 17.30H
 
 
*************************Codigo****************************************************
#importamos librerias de Veeam para utilizar los cmdlets, si lo haces con ISE puede que tengas que ejecutar con derechos de administardor 
Add-PSSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue
#Array para guardar la informacion en el excel
$report = @()
#(Get-Date).AddDays(-1).AddHours(-4.5) indicamos que trabajamos con la finalizacion del dia anterior y -4.5 horas antes de la ejecucion
$copias = Get-VBRBackupSession | Where-Object {$_.JobType -eq “Backup” -and $_.EndTime -ge (Get-Date).AddDays(-1).AddHours(-4.5)} | select name, endtimeUTC, result, state, JobTypeString | ft
$copias2 = Get-VBRBackupSession | Where-Object {$_.JobType -eq “Backup” -and $_.result -like “Faile*” -and $_.EndTime -ge (Get-Date).AddDays(-1).AddHours(-4.5)} | select name, endtimeUTC, result, state, JobTypeString | ft
######Excel, recorremos el excel insertando la informacino en las celdas correspondientes.
foreach($jobC in (Get-VBRBackupSession | Where-Object {$_.JobType -eq “Backup” -and $_.EndTime -ge (Get-Date).AddDays(-1).AddHours(-4.5)} | select name, endtimeUTC, result, state, JobTypeString)){
# cabecera del Excel
$row = “” | Select FechaEjecucion, HoraEjecucion, name, endtimeUTC, result, state, JobTypeString, SoloFallos
$row.FechaEjecucion = get-date -Format d
$row.HoraEjecucion = Get-Date -UFormat %r
$row.name = $jobC.name
$row.endtimeutc = $jobC.endtimeutc
$row.result = $jobC.result
$row.state = $jobC.state
$row.jobtypestring = $jobC.jobtypestring
if($jobC.result -like “Faile*”)
{
$row.SoloFallos = “Failed”
}
$report += $row
}
$report | Export-Csv -Path C:\ReportBackups.csv -NoTypeInformation -UseCulture -Append
## Envio de mails.
Send-MailMessage -To “hd@x.es” -From ” <mails@x.es>” -Subject “Veeam Fallo Ultimas 24h” -Body ($copias | Out-String) -SmtpServer mail.x.es
Send-MailMessage -To “hd@x.es” -From ” <mails@x.es>” -Subject “Veeam 24h” -Body ($copias2 | Out-String) -SmtpServer mail.x.es
***************************************************
 
Script parido con mi compañero de batalla Lluis Morales  !!!

Leave a Reply

Your email address will not be published.