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.
index.html: dss.1.html index.html.in INSTALL README NEWS
sed -e '/@README@/,$$d' index.html.in > $@
- grutatxt -nb < README >> $@
+ markdown README >> $@
sed -e '1,/@README@/d' -e '/@NEWS@/,$$d' index.html.in >> $@
- grutatxt -nb < NEWS >> $@
+ markdown NEWS >> $@
sed -e '1,/@NEWS@/d' -e '/@INSTALL@/,$$d' index.html.in >> $@
- grutatxt -nb < INSTALL >> $@
+ markdown INSTALL >> $@
sed -e '1,/@INSTALL@/d' -e '/@MAN_PAGE@/,$$d' index.html.in >> $@
sed -e '1,/Return to Main Contents/d' -e '/SEE ALSO/,$$d' dss.1.html >> $@
sed -e '1,/@MAN_PAGE@/d' index.html.in >> $@
- Default hooks work also on systems where "/bin/true" does not exist,
e.g. Mac OS.
+------------------
0.1.4 (2010-11-08)
-~~~~~~~~~~~~~~~~~~
+------------------
This version of dss contains some new features, many improvements of
existing features and several bug fixes.
and many error messages have been clarified. On SIGHUP, dss now writes
its configuration and internal state to the log file.
+------------------
0.1.3 (2009-06-06)
-~~~~~~~~~~~~~~~~~~
+------------------
You can now specify pre-rm/post-rm-hooks that are executed whenever
a snapshot is deleted. This release adds better compatibility with
rsync 3.0, and avoids busy loops when automatically restarting the
rsync process.
+------------------
0.1.2 (2009-03-05)
-~~~~~~~~~~~~~~~~~~
+------------------
This release includes the reason why a snapshot gets removed in the
log message. It will never remove the snapshot that is currently
being created. It will really pass the full path to the last complete
snapshot in the post_create_hook.
+------------------
0.1.1 (2008-11-13)
-~~~~~~~~~~~~~~~~~~
+------------------
This release prevents busy loops on rsync exit code 13. It ignores
any snapshot directory with creation time >= completion time. It
opens /dev/null for reading and writing when executing rsync. It shows
human readable snapshot creation duration when listing snapshots. It
restarts the rsync process if it returned with exit code 13.
+------------------
0.1.0 (2008-10-10)
-~~~~~~~~~~~~~~~~~~
+------------------
Initial public release.