Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greetings,
8.2.4 7-mode
I am looking for a script that will show me which volumes didn't take snapshots last night.
All my volumes are scheduled to take snapshots at 20:00 PM
8.2.4 7-mode
I am looking for a script that will show me which volumes didn't take snapshots last night.
All my volumes are scheduled to take snapshots at 20:00 PM
Solved! See The Solution
1 ACCEPTED SOLUTION
ahmada has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @ahmada,
Here is one version, though you could do a rudimentary check beforehand to see if the number of snapshots taken at the desired time matches the number of volumes. If they don't match, then start looking for the volumes which are missing a snapshot.
# the reference time which we want to have a snapshot taken at # this will return an object referencing yesterday at 8pm $refTime = [DateTime]::Today.AddDays(-1).AddHours(20) # get only volumes with the snapshot policy we want Get-NcVol -Query @{ VolumeSnapshotAttributes = @{ SnapshotPolicy = "default" } } | ForEach-Object { # get snapshots for the volume which match the reference time if ( ($_ | Get-NcSnapshot | Where-Object { $_.AccessTimeDT -eq $refTime }).count -ne 1) { # if there wasn't one returned, state so in red Write-Host -ForegroundColor Red "Volume $($_.Name) does not have a snapshot at the reference time" } else { # there was one returned, say so in green Write-Host -ForegroundColor Green "Volume $($_.Name) has a snapshot at the reference time" } }
Note that this is for Clustered ONTAP. The 7-mode cmdlets used will be slightly different (I don't have a 7-mode system to test against), but the principle is the same.
Hope that helps.
Andrew
If this post resolved your issue, please help others by selecting ACCEPT AS SOLUTION or adding a KUDO.
2 REPLIES 2
ahmada has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello @ahmada,
Here is one version, though you could do a rudimentary check beforehand to see if the number of snapshots taken at the desired time matches the number of volumes. If they don't match, then start looking for the volumes which are missing a snapshot.
# the reference time which we want to have a snapshot taken at # this will return an object referencing yesterday at 8pm $refTime = [DateTime]::Today.AddDays(-1).AddHours(20) # get only volumes with the snapshot policy we want Get-NcVol -Query @{ VolumeSnapshotAttributes = @{ SnapshotPolicy = "default" } } | ForEach-Object { # get snapshots for the volume which match the reference time if ( ($_ | Get-NcSnapshot | Where-Object { $_.AccessTimeDT -eq $refTime }).count -ne 1) { # if there wasn't one returned, state so in red Write-Host -ForegroundColor Red "Volume $($_.Name) does not have a snapshot at the reference time" } else { # there was one returned, say so in green Write-Host -ForegroundColor Green "Volume $($_.Name) has a snapshot at the reference time" } }
Note that this is for Clustered ONTAP. The 7-mode cmdlets used will be slightly different (I don't have a 7-mode system to test against), but the principle is the same.
Hope that helps.
Andrew
If this post resolved your issue, please help others by selecting ACCEPT AS SOLUTION or adding a KUDO.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks a lot worked like a charm 🙂
For some reason when I converted it for 7-mode '-eq' wasn't working as expected. I replaced it with '-gt' and had to settel to a snpashot named hourly.0 was taken yesterday
# the reference time which we want to have a snapshot taken at # this will return an object referencing yesterday at 8pm $refTime = [DateTime]::Today.AddDays(-1) $snapName = "hourly.0" $password = ConvertTo-SecureString "Netapp1!" -AsPlainText -Force $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "root",$password #Connect to Filer Connect-NaController 192.168.1.212 -Credential $cred Get-NaVol| ForEach-Object { # get snapshots for the volume which match the reference time if ( ($_ | Get-NaSnapshot | Where-Object { $_.AccessTimeDT -gt $refTime -and $_.Name -eq $snapName }).count -ne 1) { # if there wasn't one returned, state so in red Write-Host -ForegroundColor Red "Volume $($_.Name) does not have a snapshot at the reference time" } else { # there was one returned, say so in green Write-Host -ForegroundColor Green "Volume $($_.Name) has a snapshot at the reference time" } }
Thanks again, your help made my day
