Central rsync backup server Features: sudo ./rsync-piper.pl - generate rsync configuration based on content of RSYNC_DIR/users - start rsync server on specified port - follow rsync transfer log, parse it and trigger events - file/dir metadata in json (with VFS-like API) - deduplicate files using md5 pool and hardlinks - gearman log shipping in json format - support login+host usernames for client secrets - push md5sum file to create files from server's md5 pool - track quota usage using uid/gid using libnss-extrausers - store md5 sums generated by rsync transfer in md5 file attr - force sane permissions on files (important for Windows rsync client) create-user.sh remove-user.sh - create/remove user's directory and data test.sh - excercise rsync server to test basic operation and deduplication FULL=1 ./user-md5sum.pl u2001 | md5sum -c - generates md5sum file for user with optional full paths for easy scrubing Installation on Debian: $ ./bin/debian-install.sh Disk quota calculation depends on custom POSIX ids created using libnss-extrausers so ensure that /etc/nsswitch.conf has extrausers enabled: $ egrep '^(passwd|group):' /etc/nsswitch.conf passwd: compat extrausers group: compat extrausers Now you will want to end env.sh configuration for this slice $ vi env.sh And create ZFS filesystem and md5 pool in it: $ sudo ./bin/init-slice.sh