Microsoft Virtualization Discussions

Script to delete all but a specified number of snapshots on all vols/aggrs

itayemi

Hi All,

I tried to write a PowerShell script to connect to a filer, and delete all (from the oldest first) but a configurable number of snapshots on all the volumes and aggregates on the filer. I think it was probably too much of a task for my very first powershell scripting attempt. I tried debugging the script using powershell_ise but I am definitely missing a lot on how to use the DataOntap module/calls. Can anyone help?

- keepsnaps=5

- connect to filer

- retrieve all vols/aggr

- for every vol/aggr, delete all snapshots from the oldest leaving the most recent $keepsnaps number of snapshots from all vols and all aggregates

Thanks.

3 REPLIES 3

glenn_sizemore

Something to get you started.

$max = 5

foreach ($vol in Get-navol)
{
    $Snapshots = Get-NaSnapshot -Name $vol.name
    $remove = $Snapshots.Count - $Max
    if ($remove -ge 1)
    {
        $Snapshots |
            Sort-Object AccessTime |
            Select-Object -First $remove |
            Remove-NaSnapshot
    }
}

~Glenn

dcsanadmin

I need a script to delete snapshots that are more than 30 days old. Our backup software is supposed to do it but it fails every now and then leaving old snapshots on our  filers. As I know absolutely nothing about scripting I would really appreciate your help in coming up with a script to meet our needs.

Thanks in advance for your help.

Karon

itayemi

Hi All,

In the meantime, I have implemented the script in bash.

I am uploading it (delete_all_but_n_snapshots.sh) in case anyone is interested.

I am still interested in a powershell script to do the same.

Thanks.

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public