[OpenIndiana-discuss] destroy all but specific snapshot

Doug Hughes doug at will.to
Wed Oct 1 03:38:40 UTC 2014


On 9/30/2014 8:31 PM, Tim Aslat wrote:
> Harry Putnam wrote on 01/10/2014 09:52:
>> This is not so easy to find in google searches
>>
>> How does one go about destroying all but a specific snapshot?  The one
>> I want is somewhere in the middle timewise So not wanting to use
>> `destroy -r'.
>>
>> This is in a .zfs/snapshot/* where there are many auto snaps. So
>> looking for a way besides destroying -r or 1 by 1.
>
> Hi Harry,
>
>
> Simplest option would be something like
>
> zfs list -t snapshot -o name -H -r filesystem/path > /tmp/snaplist.txt
>
> edit /tmp/snaplist.txt to remove the snapshot you want to keep
>
> for SNAP in `cat /tmp/snaplist.txt`
> do
> 	zfs destroy $SNAP
> done
>
>

Here's an equivalent one liner for you.

zfs list -t snapshot -H <pool> | grep -v "the one you want to exclude" | 
awk '{print $1}' | xargs -n 1 zfs destroy

(you should run up to the last pipe and confirm that's what you want 
before adding on the xargs. ;)

* warning: if you have replication to a backup server, removing all of 
the snapshots for other filesystems will make those replicated snapshots 
non-operative.




More information about the openindiana-discuss mailing list