====== Copy/move a pool with all snapshots ======
- find the oldest snapshot of the source pool and send it to the target pool
* see [[https://wiki.guedel.eu/doku.php?id=welcome:zfs:small_tricks#the_oldest|https://wiki.guedel.eu/doku.php?id=welcome:zfs:small_tricks#the_oldest]]
* # zfs send source/pool@old-snap | zfs recv -F target/pool
- find the most recent snapshot of the source pool and send the incremental
* see [[https://wiki.guedel.eu/doku.php?id=welcome:zfs:small_tricks#the_most_recent|https://wiki.guedel.eu/doku.php?id=welcome:zfs:small_tricks#the_most_recent]]
* # 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 ''.*'' to replace any characters one or more times.....8-)
====== 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 ======
https://unix.stackexchange.com/questions/263677/how-to-one-way-mirror-an-entire-zfs-pool-to-another-zfs-pool