Outils pour utilisateurs

Outils du site


Panneau latéral

Menu tree

welcome:zfs:small_tricks

Destroy many snapshots

https://gist.github.com/paulhandy/45571e2077df83829fcc6dac1cfedd1a
Pour enlever tous les snapshots d'un dataset?

https://serverfault.com/questions/340837/how-to-delete-all-but-last-n-zfs-snapshots#340846

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