Skip to content
A continuation of development on zxfer, a popular script for managing ZFS snapshot replication
Branch: master
Clone or download
allanjude Merge pull request #48 from zgypa/master
-D flag fails with error when run on Linux.
Latest commit 1cc89cc Feb 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.txt Import original zxfer 0.9.9 from google code Jul 29, 2013
zxfer.1m Update zxfer.1m Oct 9, 2014
zxfer.spec spec file Jul 19, 2017


A continuation of development on zxfer, a popular script for managing ZFS snapshot replication

The Original author seems to have abandoned the project, there have been no updates since May 2011 and the script fails to work correctly in FreeBSD versions after 8.2 and 9.0 due to new ZFS properties.

Original Project Home

For now, most of the documentation will reside at the original page, until someone reorganizes it.


  • Implement new -D parameter, allows you to put a progress indicator app between the zfs send and zfs receive. Provides macros %%size%% and %%title%%. Example usage:

      -D 'bar -s %%size%% -bl 1m -bs 256m'
  • Ignore new read-only properties added in FreeBSD 9.1: 'written' and 'refcompressratio'

  • Ignore new read-only properties added in FreeBSD 9.2/8.4: 'logicalused' and 'logicalreferenced'

  • "Unsupported Properties" support, do not copy properties that are unsupported by the destination pool. Allows replication from 11-CURRENT to 9.2 etc, by automatically ignoring new properties such as: volmode, filesystem_limit, snapshot_limit, filesystem_count, snapshot_count, redundant_metadata

  • Fixed -o mountpoint=foo , it is no longer ignored as readonly if explicitly requested by the user

  • Implemented new -I parameter, ignore these properties and do not try to set them

  • Implemented new -U parameter, do not try to replicate unsupported properties, to skip properties that the destination does not understand


You will need to be root before starting.

$ su


Via pkg (Recommended)

pkg install zxfer

Via Ports


a) Go to ports directory.

# cd /usr/ports/sysutils/zxfer

b) Install

# make install

Here are the directions for those who want to do it manually. a) Copy zxfer to /usr/local/sbin.

# cp zxfer /usr/local/sbin

b) Copy zxfer.8.gz to /usr/local/man/man8

# cp zxfer.8.gz /usr/local/man/man8


As the freenas file system is not persistent for user changes, we will need to;

a) Create a standard jail via the freenas UI

b) Add the datasets required for the transfer to the jail via the jails storage manager in the UI

c) Use either the pkg or port methods above to install zxfer

all instructions for the above can be found here

OpenSolaris, Solaris 11 Express:

a) Copy zxfer to /usr/sfw/bin.

# cp zxfer /usr/sfw/bin

b) Set the path to include this.

# PATH=$PATH:/usr/sfw/bin

c) Copy zxfer.1m to /usr/share/man/man1m

# cp zxfer.1m /usr/share/man/man1m

d) Delete the old catman page, if you are updating.

# rm /usr/share/man/cat1m/zxfer.1m

e) Set the MANPATH variable correctly.

# MANPATH=$MANPATH:/usr/sfw/share/man

Note that this will not set the paths permanently.

(I don't know how. If you know how, please inform me.)

You can’t perform that action at this time.