Add dss.png to .gitignore.
[dss.git] / INSTALL
1 Type
2
3 make
4
5 in the dss source directory to build the dss executable and copy it
6 to some directory that is included in your PATH, e.g. to `$HOME/bin`
7 or to `/usr/local/bin`.
8
9 Note that [gnu
10 gengetopt](https://www.gnu.org/software/gengetopt/gengetopt.html)
11 is required to compile dss.
12
13 Optionally, type
14
15 make man
16
17 to create the man page of dss. This invokes help2man so make sure
18 that help2man is installed on your system. Note that the man page is
19 just the nroff variant of the output of `dss --detailed-help`.
20
21 dss is known to compile on Linux, MacOS, Solaris, FreeBSD and
22 NetBSD. However, it is run-tested only on Linux.
23
24 Also make sure that [rsync](http://rsync.samba.org/) is installed on
25 your system. Version 2.6.1 or newer is required.
26
27 Examples:
28 ---------
29
30 Suppose you'd like to create snapshots of the existing directory
31
32 /foo/bar
33
34 in the directory
35
36 /baz/qux.
37
38 Create the config file
39
40 ~/.dssrc
41
42 that contains the values for the source and the destination directories
43 as follows:
44
45 echo 'source-dir "/foo/bar"' > ~/.dssrc
46 echo 'dest-dir "/baz/qux"' >> ~/.dssrc
47
48 Then execute the commands
49
50 mkdir /baz/qux
51 dss --run
52
53 In order to print the list of all snapshots created so far, use
54
55 dss --ls
56
57 Yes, it's really that easy.
58
59 The second example involves a slightly more sophisticated config file.
60 It instructs dss to exclude everything which matches at least one
61 pattern of the given exclude file, prevents rsync from crossing file
62 system boundaries and increases the number of snapshots.
63
64 source-dir "/foo/bar"
65 dest-dir "/baz/qux"
66 # exclude files matching patterns in /etc/dss.exclude
67 rsync-option "--exclude-from=/etc/dss.exclude"
68 # don't cross filesystem boundaries
69 rsync-option "--one-file-system"
70 # maintain 2^6 - 1 = 63 snaphots
71 num-intervals "6"
72
73 The /etc/dss.exclude file could look like this (see rsync(1) for
74 more examples)
75
76
77 - /proc
78 - /**/tmp/
79
80 Note that dss supports many more features and config options such
81 as taking snapshots from remote hosts and several hooks that are
82 executed on certain events, for example whenever a snapshot was
83 created successfully. Try
84
85 dss -h
86
87 for an overview of all supported command line options or
88
89 dss --detailed-help
90
91 for the full help text.