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

# 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

# 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

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