Monster Blog

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  !!!

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

18 − dieciseis =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Scroll hacia arriba