Just a small note for this oneliner to cleanup snapshots
First list all snapshots with a given pattern.
(This eaxmple searches 12m)
zfs list -t snapshot | grep -F '12m' | cut -d " " -f 1 | xargs -L 1 echo zfs destroy
Remove the word echo to perform a cleanup
zfs list -t snapshot | grep -F '12m' | cut -d " " -f 1 | xargs -L 1 zfs destroy
Explanation:
zfs list -t snapshot
List all zfs snaphots
grep -F '12m'
Only match the lines containing the string 12m
cut -d " " -f 1
Only fetch the first column of the output. (This is the snapshot name)
xargs -L 1 zfs destroy
Execute the command 'zfs destroy' for the found lines
The option -L 1 means it calls 'zfs destroy' per item
without it, xargs wills supply multiple items to 1 call. (Which isn't support by zfs destroy)