Sending a ZFS Snapshot

You can use the zfs send command to send a copy of
a snapshot and receive the snapshot in another pool on the same system or
in another pool on a different system that is used to store backup data. For
example, to send the snapshot on a different pool on the same system, use
syntax similar to the following:

# zfs send tank/data@snap1 | zfs recv spool/ds01

You can use zfs recv as
an alias for the zfs receive command.

If you are sending the snapshot stream to a different system, pipe the zfs send output through the ssh command. For
example:

host1# zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana

When sending a full stream, the destination file system must not exist.

You can send incremental data by using the zfs send-i option. For example:

Note that the first argument is the earlier snapshot (snap1)
and the second argument (snap2) is the later snapshot.
In this case, the newtank/dana file system must exist
for the incremental receive to be successful.

The incremental snap1 source can be specified
as the last component of the snapshot name. This shortcut means you only have
to specify the name after the @ sign for snap1,
which is assumed to be from the same file system as snap2.
For example: