welcome:zfs:small_tricks
Table des matières
Copy/move a pool with all snapshots
- find the oldest snapshot of the source pool and send it to the target pool
# zfs send source/pool@old-snap | zfs recv -F target/pool
- find the most recent snapshot of the source pool and send the incremental
# zfs send -R -I source/pool@old-snap source/pool@recent-snap | zfs recv -Fd target/pool
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
the argument of the “grep” is a regex!
….use
….use
.*
to replace any characters one or more times…..Find snapshots
the oldest
# zfs list -H -o name -t snapshot -r the_pool_name -S creation | tail --lines=1 -- or -- # zfs list -H -o name -t snapshot -r the_pool_name -S creation | grep "name_of_the_snapshots" | tail --lines=1
the most recent
# zfs list -H -o name -t snapshot -r the_pool_name | tail --lines=1 -- or -- # zfs list -H -o name -t snapshot -r the_pool_name | grep "name_of_the_snapshots" | tail --lines=1
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
trucs divers
welcome/zfs/small_tricks.txt · Dernière modification : de arnaud