+# Copyright (C) 2008 Andre Noll <maan@systemlinux.org>
#
+# Licensed under the GPL v2. For licencing details see COPYING.
+
package "dss"
-version "0.0.5"
+version "0.1.1"
purpose "the dyadic snapshot scheduler
dss creates hardlink-based snapshots of a given directory on a remote
is also given.
"
+##################
+section "Commands"
+##################
+
defgroup "command"
#=================
groupdesc="
dss supports a couple of commands each of which corresponds
to a different command line option. Exactly one of these
options must be given.
+
"
required
groupoption "prune" P
#~~~~~~~~~~~~~~~~~~~~
-"Remove a redundant snapshot"
+"Remove redundant and outdated snapshots"
group="command"
details="
- A snapshot is considered redundant if it ether belongs to
- an interval greater than the maximum number of intervals,
- or if it belongs to an interval that already contains more
- than the desired number of snapshots.
+ A snapshot is considered outdated if it belongs to an interval
+ greater than the maximum number of intervals. It is said to be
+ redundant if it belongs to an interval that already contains
+ more than the desired number of snapshots. This command gets
+ rid of such snapshots.
"
groupoption "ls" L
group="command"
details="
This is the main mode of operation. Snapshots will be created
- as needed and pruned automatically.
+ in an endless loop as needed and pruned automatically. The loop
+ only terminates on fatal errors or if a terminating signal was
+ received. See also the --exit-hook option.
"
###############################
unit intervals.
dss removes any snapshots older than n times u and tries to
- keep 2^(k-1) snapshots in interval k, where the interval number
- k counts from zero, zero being the most recent unit interval.
+ keep 2^(n - k - 1) snapshots in interval k, where the interval
+ number k counts from zero, zero being the most recent unit
+ interval.
In other words, the oldest snapshot will at most be u * n days
(= 20 days if default values are used) old. Moreover, there
are at most 2^n - 1 snapshots in total (i. e. 31 by default).
- Observe that you have to create at least 2 ^ (n - 1) snapshots
+ Observe that you have to create at least 2^(n - 1) snapshots
each interval for this to work out because that is the number
of snapshots in interval zero.
"
optional
details="
Execute this after a snapshot has successfully been
- created. The full path of the newly created snapshot is passed
- to the hook as the first argument. The return value of that
- hook is ignored.
+ created. The full path of the newly created snapshot is
+ passed to the hook as the first argument. The exit code of
+ this hook is ignored.
For instance this hook can be used to count the number of
files per user and/or the disk usage patterns in order to
- store them in a database for further treatment.
+ store them in a database for further analysis.
+"
+
+option "exit-hook" e
+#~~~~~~~~~~~~~~~~~~~
+"Executed if run command exits"
+string typestr="command"
+optional
+details="
+ This hook is only used if the --run command was given which
+ instructs dss to run in an endless loop. The exit-hook gets
+ executed whenever this endless loop terminates. The reason
+ for terminating the loop is passed as the first argument.
+
+ One possible application for this hook is to send email to the
+ system administrator to let her know that no more snapshots
+ are going to be created.
"
###############################
details="
Specify the minimum amount of free inodes on the file system
containing the destination dir. If less than that many inodes
- are free, snatshot removal kicks in just as in case of low
+ are free, snapshot removal kicks in just as in case of low
disk space.
Note that not every file system supports the concept of inodes.
A value of zero (the default) deactivates this check.
"
+
+option "keep-redundant" k
+#~~~~~~~~~~~~~~~~~~~~~~~~
+"Prune by disk space only"
+flag off
+details="
+ If this flag is not given dss removes redundant and outdated
+ snapshots automatically.
+
+ Otherwise, this feature is deactivated so that snapshots
+ are only being removed in case disk space or inode ratio
+ becomes low. Use this flag if the file system containing the
+ destination directory is used for snapshots only.
+"