Wednesday, January 29, 2014


Neatened version of snapshot reporting scrip 

import-module dataontap
$HourlyResultsTooMany= @()
$HourlyResultsTooFew= @()
$HourlyResultsNone= @()

$filers = "filer1,filer2,filer3,filer4,filer5,filer6"
$filers | foreach-object {
    #write-host $_
    connect-nacontroller $_
    $vmvols = get-NaVol | Where-Object { ($_.name -like "*vmnfs*" -or $_.name -like "*vmwaredata*") -and -not ($_.name -like "*m" -or $_.name -like "*m2" -or $_.name -like "*page" -or $_.name -like "*srmph"  -or $_.name -like "*swap" -or $_.name -like "*sw" -or $_.name -like "*vdi*" -or $_.name -like "*NonProd" -or $_.name -like "*filer1syslog"  -or $_.name -like "*filer2vdisys"  -or $_.name -like "*filer40*") }
    $vmvolc = $vmvols | measure-object
    if ($vmvolc.count -gt 0) {
        $vmvols | ForEach-Object {
            $vmsnaps = Get-NaSnapshot $_.name | Where-Object { ($_.name -like "smvi*") -and ($_.name -like "*hourly*") -and ($_.name -notlike "*appsercvr*")} | measure-object
            write-host "volume: " $_.name " Snapshots: " $vmsnaps.count
             if ($vmsnaps.Count -eq 0) {
                   
                      $HourlyResultsNone += New-Object psobject -Property @{
                                           
                                            'Volume' = $_.name
                   
                                       }

                    } 
             if ($vmsnaps.Count -ge 25 ) {
                   
                     $HourlyResultsTooMany += New-Object psobject -Property @{
                            
                                            'Volume' = $_.name
                                            'No Of Snapshots' = $vmsnaps.count
                                            }                   
                       }
             if ($vmsnaps.Count -lt 24 ) {
                   
                     $HourlyResultsTooFew += New-Object psobject -Property @{
                            
                                            'Volume' = $_.name
                                            'No Of Snapshots' = $vmsnaps.count
                                        }
                    }
        }
    }
}
If ( $DailyResultsNone.count -ge 0) {
                    Send-MailMessage -From "someone@companyname.ie" -To "someone@companyname.ie" -Subject 'Hourly Snapshot Alert , Some Volumes do not have any Hourly snapshots' -Body ( $HourlyResultsNone | Out-String )
                     }

If ( $DailyResultsTooFew.count -ge 0) {
                     Send-MailMessage -From "someone@companyname.ie" -To "someone@companyname.ie" -Subject 'Hourly Snapshot Alert , Some Volumes do not have enough Hourly snapshots' -Body ( $HourlyResultsTooFew | Out-String )
                     }
                   
If ( $DailyResultsTooMany.count -ge 0) {
                     Send-MailMessage -From "someone@companyname.ie" -To "someone@companyname.ie" -Subject 'Hourly Snapshot Alert , Some Volumes have too many Hourly snapshots' -Body ( $HourlyResultsTooMany | Out-String )
                     }

No comments:

Post a Comment