usage: archicow [-h] (--config FILE | --version) [--verbose] JOB [JOB ...]
ArchiCOW - Backup system supporting copy-on-write storage.
positional arguments:
JOB backup job(s) to execute
optional arguments:
-h, --help show this help message and exit
--config FILE, -c FILE
config file name
--version, -V show version and exit
--verbose, -v verbose output
For example to start a job named server_backup defined in the configuration file (described in later sections), you would use:
archicow -c /etc/archicow.conf server_backup
Configuration file structure is similar to INI files. It consists of sections, led by a [section] header and followed by name: value entries, with continuations in the style of RFC 822 (see section 3.1.1, “LONG HEADER FIELDS”); name=value is also accepted. Note that leading whitespace is removed from values.
Values can contain format strings in the form %(name)s which refer to other values in the same section, or values in a special DEFAULT section.
Configuration files may include comments, prefixed by specific characters (# and ;). Comments may appear on their own in an otherwise empty line, or may be entered in lines holding values or section names. In the latter case, they need to be preceded by a whitespace character to be recognized as a comment. Only semicolon ; starts an inline comment, while hash-sign # does not.
Configuration file consists of a special DEFAULT section and sections describing individual backup jobs. Parameters in the default section are used as default values for every job unless they are overriden in the job section.
Sections defining backup jobs are named by the job name with JOB: prefix.
Job specification contains these common parameters:
Other parameters are used by the process modules. Please see their respective sections later in this document.
[DEFAULT]
target_base = /var/lib/archicow/backup
process = RsyncProcess
storage = HardlinkStorage
# user defined parameter:
config_dir = /etc/archicow
[JOB:server_backup]
# remote SSH user (optional)
user = rbackup
# remote host
host = example.com
# SSH key to use (optional)
key_path = %(config_dir)s/keys/example_key
# Source path on remote host
source_path = /home/rbackup
# Target path below target_base
target_path = %(host)s/rbackup
# Exclude list for rsync, patterns separated by ||
exclude = file2||file3
# Use sudo for remote rsync and prepare script
remote_sudo = 1
# Same for local rsync
local_sudo