Type
- make
+ 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.
+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 https://www.gnu.org/software/gengetopt/gengetopt.html (gnu gengetopt)
+Note that [gnu
+gengetopt](https://www.gnu.org/software/gengetopt/gengetopt.html)
is required to compile dss.
Optionally, type
- make man
+ 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".
+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 http://rsync.samba.org/ (rsync) is installed on
+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
+ /foo/bar
in the directory
- /baz/qux.
+ /baz/qux.
Create the config file
- ~/.dssrc
+ ~/.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
+ echo 'source-dir "/foo/bar"' > ~/.dssrc
+ echo 'dest-dir "/baz/qux"' >> ~/.dssrc
Then execute the commands
- mkdir /baz/qux
- dss --run
+ mkdir /baz/qux
+ dss --run
In order to print the list of all snapshots created so far, use
- dss --ls
+ dss --ls
Yes, it's really that easy.
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"
+ 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/
+
+ - /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
+ dss -h
for an overview of all supported command line options or
- dss --detailed-help
+ dss --detailed-help
for the full help text.