]> git.tuebingen.mpg.de Git - dss.git/blobdiff - dss.ggo
Convert dss to lopsub.
[dss.git] / dss.ggo
diff --git a/dss.ggo b/dss.ggo
deleted file mode 100644 (file)
index 48ec432..0000000
--- a/dss.ggo
+++ /dev/null
@@ -1,468 +0,0 @@
-# Copyright (C) 2008-2010 Andre Noll <maan@tuebingen.mpg.de>
-#
-# Licensed under the GPL v2. For licencing details see COPYING.
-
-package "dss"
-version "0.1.7"
-purpose "the dyadic snapshot scheduler
-
-dss creates hardlink-based snapshots of a given directory on a remote
-or local host using rsync's link-dest feature.
-"
-
-#########################
-section "General options"
-#########################
-
-option "config-file" c
-#~~~~~~~~~~~~~~~~~~~~~
-"(default='~/.dssrc')"
-string typestr="filename"
-optional
-details="
-       Options may be given at the command line or in the
-       configuration file. As usual, if an option is given both at
-       the command line and in the configuration file, the command
-       line option takes precedence.
-
-       However, there is an important exception to this rule:
-       If the --run option was given (see below) then dss honors
-       SIGHUP and re-reads its configuration file whenever it
-       receives this signal. In this case the options in the config
-       file override any options that were previously given at the
-       command line. This allows to change the configuration of a
-       running dss process on the fly by sending SIGHUP.
-"
-
-option "daemon" d
-#~~~~~~~~~~~~~~~~
-"Run as background daemon"
-flag off
-details="
-       This option is mostly useful in conjunction with the -R option
-       described below.
-
-       Note that it is not possible to change whether dss runs as background
-       daemon by sending SIGHUP.
-"
-
-option "dry-run" D
-#~~~~~~~~~~~~~~~~~
-"Only print what would be done"
-flag off
-details="
-       This flag does not make sense for all commands. The run
-       command refuses to start if this option was given. The ls
-       command silently ignores this flag.
-"
-
-#################
-section "Logging"
-#################
-
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"Set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-details="
-       Lower values mean more verbose logging.
-"
-
-option "logfile" -
-#~~~~~~~~~~~~~~~~~
-"Logfile for the dss daemon process"
-string typestr="filename"
-optional
-default="/dev/null"
-details = "
-       This option is only honored if both --run and --daemon are
-       given. Otherwise it is silently ignored and log output is written
-       to stderr.
-
-       The default value means that nothing will be logged in daemon mode
-       unless this option is 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 "create" C
-#~~~~~~~~~~~~~~~~~~~~~
-"Create a new snapshot"
-group="command"
-details="
-       Execute the rsync command to create a new snapshot. Note that
-       this command does not care about free disk space.
-"
-
-groupoption "prune" P
-#~~~~~~~~~~~~~~~~~~~~
-"Remove redundant and outdated snapshots"
-group="command"
-details="
-       A snapshot is considered outdated if its interval number
-       is greater or equal than the specified number of unit
-       intervals. See the \"Intervals\" section below for the precise
-       definition of these terms.
-
-       A snapshot is said to be redundant if it belongs to an
-       interval that already contains more than the desired number
-       of snapshots.
-
-       The prune command gets rid of both outdated and redundant
-       snapshots.
-"
-
-groupoption "ls" L
-#~~~~~~~~~~~~~~~~~
-"Print a list of all snapshots"
-group="command"
-details="
-       The list will contain all snapshots no matter of their state,
-       i. e. incomplete snapshots and snapshots being deleted will
-       also be listed.
-"
-
-groupoption "run" R
-#~~~~~~~~~~~~~~~~~~
-"Start creating and pruning snapshots"
-group="command"
-details="
-       This is the main mode of operation. Snapshots will be created
-       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.
-"
-
-groupoption "kill" K
-#~~~~~~~~~~~~~~~~~~~
-"Kill a running dss process"
-group="command"
-details="
-       This sends SIGTERM to the dss process that corresponds to the
-       given config file. If --dry-run is given, the PID of the dss
-       process is written to stdout, but no signal is sent.
-"
-
-groupoption "reload" -
-#~~~~~~~~~~~~~~~~~~~~~
-"force a running dss process to reload its config file"
-group="command"
-details="
-       This differs from --kill only in that SIGHUP rather than SIGTERM
-       is sent to the dss process.
-"
-
-###############################
-section "Rsync-related options"
-###############################
-
-option "remote-host" H
-#~~~~~~~~~~~~~~~~~~~~~
-"Remote host"
-string typestr="hostname"
-default="localhost"
-optional
-details="
-       If this option is given and its value differs from the local
-       host, then rsync uses ssh. Make sure there is no password
-       needed for the ssh connection. To achieve that, use public key
-       authentication for ssh and, if needed, set the remote user name
-       by using the --remote-user option.
-"
-
-option "remote-user" U
-#~~~~~~~~~~~~~~~~~~~~~
-"Remote user name (default: current user)"
-string typestr="username"
-optional
-details="
-       Set this if the user running dss is different from the
-       user at the remote host when using ssh.
-"
-
-option "source-dir" -
-#~~~~~~~~~~~~~~~~~~~~
-"The data directory"
-string typestr="dirname"
-required
-details="
-       The directory on the remote host from which snapshots are
-       taken.  Of course, the user specified as --remote-user must
-       have read access to this directory.
-"
-
-option "dest-dir" -
-#~~~~~~~~~~~~~~~~~~
-"Snapshot dir"
-string typestr="dirname"
-required
-details="
-       The destination directory on the local host where snapshots
-       will be written. This must be writable by the user who runs
-       dss.
-"
-
-option "rsync-option" O
-#~~~~~~~~~~~~~~~~~~~~~~
-"Further rsync options"
-string typestr="option"
-optional
-multiple
-details="
-       This option may be given multiple times. The given argument is
-       passed verbatim to the rsync command. Note that in order to use
-       rsync options that require an argument, you have to specify the
-       option and its argument as separate --rsync-options, like this:
-
-               --rsync-option --exclude --rsync-option /proc
-"
-
-option "max-rsync-errors" -
-"Terminate after this many rsync failures"
-int typestr="count"
-default="10"
-optional
-details="
-       Only relevant when operating in --run mode (see above). If
-       the rsync process exits with a fatal error, dss restarts
-       the command in the hope that the problem is transient
-       and subsequent rsync runs succeed. After the given number
-       of consecutive rsync error exits, however, dss gives up,
-       executes the exit hook and terminates. Set this to zero if
-       dss should exit immediately on the first rsync error.
-
-       The only non-fatal error is when rsync exits with code 24. This
-       indicates a partial transfer due to vanished source files
-       and happens frequently when snapshotting a directory which
-       is concurrently being modified.
-"
-
-###################
-section "Intervals"
-###################
-
-option "unit-interval" u
-#~~~~~~~~~~~~~~~~~~~~~~~
-"The duration of a unit interval"
-int typestr="days"
-default="4"
-optional
-details="
-       Snapshot aging is implemented in terms of intervals. There are two
-       command line options related to intervals: the duration u of a unit
-       interval and the number of unit intervals, denoted n below.
-
-       dss removes snapshots older than n times u and tries to keep 2^(n -
-       k - 1) snapshots in interval k, where the interval number k counts
-       from zero to n - 1, with zero being the most recent unit interval.
-
-       Hence the oldest snapshot will at most be u * n days old (4 days *
-       5 intervals = 20 days, if default values are used). Moreover, there
-       are at most 2^n - 1 snapshots in total (2^5 - 1 = 31 by default). Note
-       that for this to work out your system must be fast enough to create at
-       least 2^(n - 1) snapshots per unit interval (16 snapshots in 4 days =
-       one snapshot in 6 hours), because this is the number of snapshots in
-       interval zero.
-"
-
-option "num-intervals" n
-#~~~~~~~~~~~~~~~~~~~~~~~
-"The number of unit intervals"
-int typestr="num"
-default="5"
-optional
-details="
-       Note that increasing this number by one doubles the total number of
-       snapshots. See the documentation of --unit-interval above.
-"
-
-###############
-section "Hooks"
-###############
-
-option "pre-create-hook" r
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Executed before snapshot creation"
-string typestr="command"
-default = "true"
-optional
-details="
-       Execute this command before trying to create a new snapshot.
-       If this command returns with a non-zero exit status, no
-       snapshot is being created and the operation is retried later.
-
-       For example, one might want to execute a script that checks
-       whether all snapshot-related file systems are properly mounted.
-
-       Another possible application of this is to return non-zero
-       during office hours in order to not slow down the file systems
-       by taking snapshots.
-"
-
-option "post-create-hook" o
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Executed after snapshot creation"
-string typestr="command"
-default = "true"
-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 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 analysis.
-"
-
-option "pre-remove-hook" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Executed before snapshot removal"
-string typestr="command"
-default = "true"
-optional
-details="
-       Execute this command before removing a snapshot. The full
-       path to the snapshot about to be deleted is passed to the
-       command as the first argument. If the command returns with
-       a non-zero exit status, no snapshot is being removed and the
-       operation is retried later.
-
-       For example, one might want to execute a script that checks
-       whether the snapshot to be deleted is currently used by
-       another process, e.g. by a tape-based backup system that runs
-       concurrently to dss.
-
-       Another possible application of this is to record disk-usage
-       patterns before and after snapshot removal.
-"
-
-option "post-remove-hook" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Executed after snapshot removal"
-string typestr="command"
-default = "true"
-optional
-details="
-       Execute this after a snapshot has successfully been removed. As
-       for the pre-remove hook, the full path of the removed snapshot
-       is passed to the hook as the first argument. The exit code
-       of this hook is ignored.
-"
-
-option "exit-hook" e
-#~~~~~~~~~~~~~~~~~~~
-"Executed if run command exits"
-string typestr="command"
-default = "true"
-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.
-"
-
-###############################
-section "Disk space monitoring"
-###############################
-
-option "min-free-mb" m
-#~~~~~~~~~~~~~~~~~~~~~
-"Minimal amount of free disk space"
-int typestr="megabytes"
-default="100"
-optional
-details="
-       If disk space on the file system containing the destination
-       directory gets low, \"dss --run\" will suspend the currently
-       running rsync process and will start to remove snapshots in
-       order to free disk space. This option specifies the minimal
-       amount of free disk space. If less than the given number of
-       megabytes is available, snapshots are being deleted. See also
-       the --min_free_percent and the min-free-percent-inodes options.
-
-       A value of zero deactivates this check.
-"
-
-option "min-free-percent" p
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Minimal percent of free disk space"
-int typestr="percent"
-default="2"
-optional
-details="
-       See --min-free-mb. Note that it is not recommended to set both
-       --min-free-mb and --min-free-percent to zero as this will
-       cause your file system to fill up quickly.
-"
-option "min-free-percent-inodes" i
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Minimal percent of free inodes"
-int typestr="percent"
-default="0"
-optional
-details="
-       Specify the minimum amount of free inodes on the file system
-       containing the destination dir. If less than that many inodes
-       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.
-       Moreover it is not possible to reliably detect whether this is
-       the case. Therefore this feature is disabled by default. It's
-       safe to enable it for ext2/ext3/ext4 file systems on linux
-       though.
-
-       A value of zero (the default) deactivates this check.
-"
-
-option "keep-redundant" k
-#~~~~~~~~~~~~~~~~~~~~~~~~
-"Prune by disk space only"
-flag off
-details="
-       By default, redundant and outdated snapshots are removed automatically
-       to keep the number of snapshots in harmony with the configured
-       policy. If this flag is given, dss removes such snapshots only if
-       disk space or number of free inodes becomes low.
-"
-
-option "min-complete" -
-#~~~~~~~~~~~~~~~~~~~~~~
-"Minimal number of complete snapshots to keep"
-int typestr = "num"
-default = "1"
-optional
-details = "
-       This option is only relevant if snapshots must be deleted
-       because disk space gets low.
-
-       dss refuses to remove old snapshots if there are fewer complete
-       snapshots left than the given number. The default value of one
-       guarantees that at least one complete snapshot is available
-       at all times.
-
-       If only <num> complete snapshot are left, and there is not
-       enough disk space available for another snapshot, the program
-       terminates with a \"No space left on device\" error.
-"