Eliminar snapshot pasados 5 días por powercli

Hace poco escribir un artículo, donde hablaba de hacer un informe de los snapshot que tenemos en la plataforma, podéis verlo aquí.Siguiendo la estela, voy a hacer otro script de powercli que elimina los snapshot pasados 10 días, así nos olvidamos de eliminarlos manualmente.

Como ya os dije los snapshot son una excelente herramienta, pero no son un sistema de backup.

Y por supuesto, nos mandara un mail cuando lo haga para que lo tengamos controlado.

Lo explico por lineas.

Conectamos con el vcenter

Connect-VIServer -server TUVCENTER

Definimos los dias de antiguedad de lo snapshot

$dias = (Get-date).AddDays(-5)

Recopilamos información de todos los snapshot de la plataforma

$snap = Get-Folder vm | Get-VM | Get-Snapshot | Select VM, name, SizeMb, Description, Created | Format-List -Property VM, Name, SizeMB, Description, Created | Where Created -lt $dias | Out-String

Los vamos a eliminar, y quitamos al confirmación, si no se quedara parado en este punto.

$Snapshots = $Snap | Remove-Snapshot -RunAsync -Confirm:$false

Esta linea la pongo para tener controladas las tareas de eliminación en el vcenter

Get-task -id $snapshots.id

Generación del correo con la información del o borrado, en from y en to debemos poner nuestros  datos de cuenta de envio y cuenta de destino, así como el servidor smtp para que realice bien el envio.

$body = " Se ha detectado estos snapshot en la plataforma de VMware y se han eliminado:" 
$body += "$Snap" 
Send-MailMessage -From "MAILDESDEENVIO" -To "MAILDESTINO" `
 -SmtpServer "SERVIDORSMTP" -Body $body `
 -Subject "Limpieza de snapshot $time"

Por ultimo, nos va a desconectar del vcenter

disconnect-viserver -confirm:$false

Os dejo el script completo:

Connect-VIServer -server TUVCENTER 
$dias = (Get-date).AddDays(-5)  
$snap = Get-Folder vm | Get-VM | Get-Snapshot | Select VM, name, SizeMb, Description, Created | Format-List -Property VM, Name, SizeMB, Description, Created | Where Created -lt $dias | Out-String
 

$Snapshots = $Snap | Remove-Snapshot -RunAsync -Confirm:$false 

Get-task -id $snapshots.id 


$body = " Se ha detectado estos snapshot en la plataforma de VMware y se han eliminado:"

$body += "$Snap" 


  Send-MailMessage -From "MAILDESDEENVIO" -To "MAILDESTINO" `
  -SmtpServer "SERVIDORSMTP" -Body $body `
  -Subject "Limpieza de snapshot $time" 
  
 

  disconnect-viserver -confirm:$false

Espero que os sirva

 

Deja un comentario