Seite 1 von 1

PowerCLI: Snapshots auflisten und filtern

Verfasst: 22.08.2016, 11:02
von Kuddel071089
Hallo zusammen,

jeden Tag (10 Uhr) bekommen wir VMware Admins eine Mail zugeschickt, in der alle aktuellen Snapshots auf dem System aufgelistet sind, bzw. eine Mail, dass es aktuell keine Snapshots gibt.

Funktioniert einwandfrei.

Sobald es aber noch Snapshots von einer laufenden Datensicherung gibt, funktioniert das ganze nicht mehr, dann diese Snapshots werden ja atuomatisch gelöscht und sind dahe rnicht relevant.

Kann man bei der SUche irgendwie FIlter und Snapshots mit der Beschreibung ausblenden ?

Mit diesem Befehl suche ich nach Snapshots:

Code: Alles auswählen

Get-VM | Get-Snapshot | Select VM, Name, Description, Created, SizeGB | Out-File -FilePath $logdatei -encoding utf8 -Append

Hier müsste ich jetzt irgendwie Filtern können

Code: Alles auswählen

... -Filter {Description -notlike "*YXZ*"}


Danke schon einmal für die Hilfe

Verfasst: 22.08.2016, 11:52
von irix
Hier bei uns wird die Anzahl und das Datum mit angezeigt. Das heist du must entweder den Namen, deine Backupsoftware wird sie da ja verewigen oder aber das Erstellungsdatum des Snapshots mit einbeziehen was bedeutet diese dann auszuschliessen.

Bei Powershell kann man natuerlich immer Versuchen alles in "eine" Zeile zu quetchen oder aber man macht klassisch das grobe Dateneinsammeln um dann innerhalb einer Foreach- Schleife darueber zuiterieren und nach einer oder mehr Methoden Dinge auszuschliessen.

Das Snapshot Objekt sollte ein $_.Created haben.

Gruss
Joerg

Verfasst: 22.08.2016, 14:36
von Kuddel071089
Habe es hinbekomme.

Hier ist meine Skript, falls es jmd interessiert:

Code: Alles auswählen

cls
$host.ui.RawUI.WindowTitle = "Snapshot Check v0.2"

$Mailempfaenger = "user@xyz.de"
$smtpserver = "outlook.xyz.de"
$datum = Get-Date -format "dd.MM.yyyy"
$logdatei = "C:\Snapshot_Check_$datum.txt"


#Vmware CLI laden
."C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
cls

#Verbindung mit vCenter aufnehmen
Connect-VIserver -Server VNTS080
cls



if(Get-VM | Get-Snapshot) {
$snapshots = Get-VM | Sort | Get-Snapshot | Select VM, Name, Description, Created, SizeGB
foreach($snapshot in $snapshots){

#Auswertung über Snapshots erstellen
if($snapshot.Description -notlike "*Data Protector*"){
"VM:              $($snapshot.VM)" | Out-File -FilePath $logdatei -encoding utf8 -Append
"Name:            $($snapshot.Name)" | Out-File -FilePath $logdatei -encoding utf8 -Append
"Beschreibung:    $($snapshot.Description)" | Out-File -FilePath $logdatei -encoding utf8 -Append
"Erstellt:        $($snapshot.Created)" | Out-File -FilePath $logdatei -encoding utf8 -Append
"Größe in GB:     $($snapshot.SizeGB)" | Out-File -FilePath $logdatei -encoding utf8 -Append
"" | Out-File -FilePath $logdatei -encoding utf8 -Append
}
}
#Info Mail der aktuellen Snapshots
if(Test-Path $logdatei){
Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from "VNTS400-Snapshot-Check <VNTS400@xyz.de>" -Subject "+++ VMware: Snapshot-Übersicht +++" -body "Im Anhang sind alle derzeit vorhandenen Snapshots aufgelistet. Bitte prüfen und ggf. löschen" -Attachments $logdatei -Encoding "UTF8"
Remove-Item $logdatei}
else{
#Info Mail, wenn es keine Snapshots gibt
Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from "VNTS400-Snapshot-Check <VNTS400@xyz.de>" -Subject "+++ VMware: Derzeit sind keine Snapshots vohanden +++"
}
}
else{
#Info Mail, wenn es keine Snapshots gibt
Send-MailMessage -SmtpServer $smtpserver -to $Mailempfaenger -from "VNTS400-Snapshot-Check <VNTS400@xyz.de>" -Subject "+++ VMware: Derzeit sind keine Snapshots vohanden +++"
}

Verfasst: 22.08.2016, 14:58
von irix
Das ist aber nur bedingt Praxistauglich.... dein HP DP waere das erste Produkt was ich antreffe das mal keine Snaps "stehen" laesst. Das Problem liegt auch nicht primaer am Backupprodukt sondern im Zusammenspiel mit vSphere und da sehe ich auch den schwarzen Peter.

Ich wuerde Snaps mit Namen "*Data Protector*" welche innerhalb der letzten 24h (bzw. max Joblaufzeit) unterdruecken und drueber hinaus diese ausweisen.

Ansonsten passiert dir das was der ein oder andere schon erlebt hat das er XXX Snaps gehabt hat am Ende des Platzes von seinem Datastore :)

Gruss
Joerg