Montag, 28. Februar 2011

Powershell-Einzeiler für Snapshotbereinigungen auf einer FAS

Folgendes Skript löscht alle Snapshots, welche älter sind als 30 Tage und auf einem Volume abgespeichert sind, welches die Zeichenfolge mxm beinhaltet.

get-navol | where {$_.Name -match 'mxm'} | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.AccessTimeDT -lt ((Get-Date).AddDays(-30))} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose}

Folgendes Skript löscht Snapshots, bei welchen die Zeichenfolge clone im Namen vorkommt.

get-navol | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.Name -match 'clone'} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose}

Wenn die Snapshots automatisch gelöscht werden sollen, so ist das Remove-NaSnapshot-CMDlet wie folgt zu vervollständigen:

get-navol | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.Name -match 'clone'} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose -Confirm:$False}