Zync is a Java program that combines the power of rsync and zfs snapshots to backup remote servers. Configuration is very easy, and once configured, all you need to do is to add it to cron to be executed as often as you would like.

When Zync is executed, it performs rsync syncrhonzation of the specified servers, and when it's done it takes a ZFS snapshot of the current state. snapshots contains a timestamp for easy recognition:

$ ls -1 /storage/backup/.zfs/snapshot/

Zync can automatically delete snapshots older than a particular time (older than X days, hours or minutes). this ensures that your backup directory does not grows indefinitely.


zync 0.91

Recent changes

Changes in last version:

  • Now runs rsync in multiple threads, improving performance when backing up multiple servers
  • Now saves stdout and stderr to log files specified as zync.rsync.logs_dir or zync.backup.logs_dir.
  • Fixed to ignore rsync exit code 24 (file vanished) and to finish operating even if one of the backups failed.

Full changelog.


Zync comes with two sample configuration files:

Copy one of those files to backup.conf (or any other name you choose) and edit it to suite your needs.

Here is a minimalistic example of a backup configuration file, You can have multiple backup blocks to backup more than one server.

@swush 1.0

		host :
		directory : /
		destination : "/storage/backup/${host}"
		backup_file_system : storage/backup
			delete_older : 30d

Typically, you would want to setup the server that runs Zync so that it can access the backed-up machines without having to type a password. see PasswordLessSSHLogic for more information.


java -jar zync-VER.jar [options]
  • -v or --verbose : prints what zync is doing. by default verbose is off and only errors are printed.
  • -f or --file : backup configuration file to use, by default uses backup.conf


Zync is released under the BSD license

Build instructions

Check out from repository, and build using ant (you need Build, jdk and ant installed):

$ svn co
$ cd zync
$ ant

generated files will be placed in a new build directory inside the project directory.

Last modified 12 years ago Last modified on Aug 13, 2009, 7:41:02 AM