Outils pour utilisateurs

Outils du site

Panneau latéral

Menu tree


Destroy many snapshots

Pour enlever tous les snapshots d'un dataset?


You may find something like this a little simpler

zfs list -t snapshot -o name | grep ^tank@Auto | tac | tail -n +16 | xargs -n 1 zfs destroy -r

    output the list of snapshot (names only) with zfs list -t snaphot -o name
    filter to keep only the ones that match tank@Auto with grep ^tank@Auto
    reverse the list (previously sorted from oldest to newest) with tac
    limit output to the 16th oldest result and following with tail -n +16
    then destroy with xargs -n 1 zfs destroy -vr

deleting snapshots in reverse order is supposedly more efficient.

or sort in reverse order of creation

zfs list -t snapshot -o name -S creation | grep ^tank@Auto | tail -n +16 | xargs -n 1 zfs destroy -vr

Test it with ...|xargs -n 1 echo 

Look into a snapshot

Look into tank/my_dataset@my_snapshot:

# ls /mnt/tank/my_dataset/.zfs/snapshot/my_snapshot       ### under /mnt for FreeNAS, /rpool for Proxmox

It is possible to go down into subfolders and to copy from this place to another place in the “normal” file system.

Scrub a pool

Run a scrub job on pool “tank”:

# zpool scrub tank           ### top start the job
#zpool status -v tank          ### to monitor the job 
welcome/zfs/small_tricks.txt · Dernière modification: 2021/02/15 14:28 de arnaud