Type make in the dss source directory to build the dss executable and copy it to some directory that is included in your PATH, e.g. to `$HOME/bin` or to `/usr/local/bin`. Note that [gnu gengetopt](https://www.gnu.org/software/gengetopt/gengetopt.html) is required to compile dss. Optionally, type make man to create the man page of dss. This invokes help2man so make sure that help2man is installed on your system. Note that the man page is just the nroff variant of the output of `dss --detailed-help`. dss is known to compile on Linux, MacOS, Solaris, FreeBSD and NetBSD. However, it is run-tested only on Linux. Also make sure that [rsync](http://rsync.samba.org/) is installed on your system. Version 2.6.1 or newer is required. Examples: --------- Suppose you'd like to create snapshots of the existing directory /foo/bar in the directory /baz/qux. Create the config file ~/.dssrc that contains the values for the source and the destination directories as follows: echo 'source-dir "/foo/bar"' > ~/.dssrc echo 'dest-dir "/baz/qux"' >> ~/.dssrc Then execute the commands mkdir /baz/qux dss --run In order to print the list of all snapshots created so far, use dss --ls Yes, it's really that easy. The second example involves a slightly more sophisticated config file. It instructs dss to exclude everything which matches at least one pattern of the given exclude file, prevents rsync from crossing file system boundaries and increases the number of snapshots. source-dir "/foo/bar" dest-dir "/baz/qux" # exclude files matching patterns in /etc/dss.exclude rsync-option "--exclude-from=/etc/dss.exclude" # don't cross filesystem boundaries rsync-option "--one-file-system" # maintain 2^6 - 1 = 63 snaphots num-intervals "6" The /etc/dss.exclude file could look like this (see rsync(1) for more examples) - /proc - /**/tmp/ Note that dss supports many more features and config options such as taking snapshots from remote hosts and several hooks that are executed on certain events, for example whenever a snapshot was created successfully. Try dss -h for an overview of all supported command line options or dss --detailed-help for the full help text.