Each option is marked here with one of (B) for Boolean, (S) single
value, (L) list or (0) other.
- SET option option ... (O)
- UNSET option option ... (O)
- Set or unset one or more boolean options.
NOTE: The SET and UNSET directives do not use colons
<:>.
- RESET option (O)
- Reset a list option so that it contains no values.
This may be used to start specification of the option.
NOTE: The RESET directive does not use a colon <:>.
- bank: (L)
- Specify paths to directories containing vaults.
A bank is a directory containing one or more
vaults. The system supports multiple banks so that
filesystem mount-points can be managed more effectively.
When a vault is specified the banks will be
searched in list order until the vault is found. This way
vaults can be moved between banks or added without having
to update a master index.
Multiple bank: values will accumulate.
- branch: branch_name (S)
- Specify a branch to use.
A branch is a sequence of images.
This also specifies a default value for reference:.
Setting this in a config file may cause the command line
option to be overridden. Use branch-default: instead.
- branch-default: branch_name (S)
- Specify a default branch to use.
- client: [username@]client_name (S)
- specify a client to back up.
Setting this to the same value as hostname will cause dirvish
to do a local copy and stay off the network. This automatically invokes
whole-file.
The first time this parameter is set
/etc/dirvish/client_name or
/etc/dirvish/client_name.conf will be loaded.
- checksum: (B)
- Force the checksum comparison of file contents even when the inode fails
to indicate a change has occurred.
Default value: 0
- config: filename (S)
- Load configuration file.
Similar to #include, filename or
filename.conf will be loaded immediately.
If filename is a relative path it will be looked for in
the vault and then the system-wide configuration directories.
- devices: (B)
- If this is unset device special files will be excluded from backups.
This may need to be unset when doing backups of where the
client OS uses device numbers or types unsupported by the server OSs or
where the presence of device nodes in the vault present a security
issue.
- exclude: (L)
- Specify a filename patterns to exclude.
Patterns are based on shell glob with some enhancements.
See rsync(1) for more details.
Multiple exclude: values will accumulate.
- file-exclude: filename (S)
- Load a set of patterns from a file.
If filename is a relative path it will be looked for in
the vault and then the system-wide configuration directories.
- expire: expire_date (S)
- Specify a time for the image to expire.
This does not actually expire anything. What it does do is add
an Expire: option to the image summary file with the
absolute time appended so that dirvish-expire can automate old
image removal.
Setting this in a config file may cause the command line
option to be overridden. Use expire-rule: and
expire-default: instead.
See Time::ParseDate(3pm) for more details.
- expire-default: expire_date (S)
- Specify a default expiration time.
This value will only be used if expire is not set and
expire-rule doesn't have a match.
- expire-rule: (L)
- specify rules for expiration.
Rules are specified similar to crontab or in
Time::Periodformat.
See EXPIRE RULES for more details.
Multiple expire-rule: values will accumulate.
- image: image_name (S)
- Specify a name for the image.
image_name is passed through POSIX::strftime
Setting this in a config file may cause the command line
option to be overridden. Use image-default: instead.
See strftime(3) for more details.
- image-default: image_name (S)
- Set the default image_name.
This value will only be used if image: is not set.
- image-perm: octal_mode (S)
- Set the permissions for the image.
While the image is being created the image
directory permissions will be 0700. After completion it will be
changed to octal_mode or 0755.
See chmod(1) and umask(2) for more details.
- image-time: parsedate_expression (S)
- Time to use when creating the image name.
If an absolute time without a date is provided it will be
forced into the past.
If this isn't set the current time will be used.
See Time::ParseDate(3pm) for more details.
- image-temp: dirname (S)
- Temporary directory name to use for new image. This allows you to
have images created with the same directory name each run so that
automatic processes can access them.
The next time an image is made on the branch this
option will cause the directory to be renamed to its official name.
- index: none|text|gzip|bzip2 (S)
- Create an index file listing all files in the image.
The index file will be created using find -ls so the
list will be in the same format as ls-dils with paths converted
to reflect the source location.
If index is set to bzip2 or gzip or a path to one the index
file will be compressed accordingly.
This index will be used by dirvish-locate to locate
versions of files. See dirvish-locate(8) for more details.
- init: (B)
- Create an initial image.
Turning this on will prevent backups from being
incremental.
- log: text|gzip|bzip2 (S)
- Specify format for the image log file.
If log is set to bzip2 or gzip or a path to one the log
file will be compressed accordingly.
- meta-perm: octal-mode (S)
- Set the permissions for the image meta-data files.
If this value is set the permissions of the meta-data files in
the image will be changed after the image is created.
Otherwise the active umask will prevail.
SECURITY NOTE: The log, index, and error files contain lists
of files. It may be possible that filenames themselves may be or contain
confidential information so uncontrolled access may constitute a
security weakness.
See chmod(1) and umask(2) for more details.
- numeric-ids: (B)
- Use numeric uid/gid values instead of looking up user/group names for
setting permissions.
See rsync(1) for more details.
Default value: 1
- password-file: filepath (S)
- Specify file containing password for connection to an rsync daemon
on backup client.
This is not useful for remote shell passwords.
See --password-file in rsync(1) for more
details.
- permissions: (B)
- Preserve file permissions. If this is unset permissions will not be
checked or preserved.
With rsync version 2.5.6 not preserving permissions will break
the linking. Only unset this if you are running a later version of
rsync.
See rsync(1) for more details.
Default value: 1
- pre-server: shell_command (S)
- pre-client: shell_command (S)
- post-client: shell_command (S)
- post-server: shell_command (S)
- Execute shell_command on client or server before or after making
backup.
The client commands are run on the client system using the
remote shell command (see the rsh: parameter).
The order of execution is pre-server,
pre-client, rsync, post-client, post-server.
The shell_command will be passed through strftime(3) to
allow date strings to be expanded.
Each pre or post shell_commands will be run with these
environment variables DIRVISH_SERVER, DIRVISH_CLIENT,
DIRVISH_SRC, DIRVISH_DEST and DIRVISH_IMAGE set.
The current directory will be DIRVISH_SRC on the client and
DIRVISH_DEST on the server. If there are any exclude patterns
defined the pre-server shell command will also have the exclude
file's path in DIRVISH_EXCLUDE so it may read or modify the
exlude list.
STDOUT from each shell_command will be
written to the image log file.
The exit status of each script will be checked. Non-zero
values will be recognised as failure and logged. Failure of the
pre-server command will halt all further action. Failure of the
pre-client command will prevent the rsync from running and the
post-server command, if any, will be run.
Post shell_commands will also have
DIRVISH_STATUS set to success, warning,
error, or fatal error.
This is useful for multiple things. The client
shell_commands can be used to stop and start services so their
files can be backed up safely. You might use post-server: to
schedule replication or a tape backup of the new image. Use your
imagination.
- reference: branch_name|image_name (S)
- Specify an existing image or a branch from which to create
the new image.
If a branch_name is specified, the last existing
image from its history file will be used. A branch will
take precedence over an image of the same name.
If this isn't specified the branch name will be used as
a default value.
- rsh: command (S)
- Remote shell utility.
This can be used to specify the location of ssh or
rsh and/or to provide addition options for said utility such as
-p port for ssh to use an alternate port
number.
If not specified ssh will be used.
This remote shell command will be used not only as the default
rsync transport but also for any pre-client and
post-client commands.
- rsync: command (S)
- Path to rsync executable on the server.
- rsync-client: command (S)
- Path to rsync executable on the client.
- rsync-option: (L)
- Specify additional options for the rsync command.
Only one option per list item is supported.
This allows you to use rsync features that are not directly
supported by dirvish. Where dirvish does support an rsync
feature it is probably better to use the the dirvish supplied
mechanism for setting it.
Multiple rsync-options: values will accumulate.
- sparse: (B)
- Try to handle sparse files efficiently so they take up less space in the
vault.
NOTE: Some filesystem types may have problems seeking over
null regions.
- speed-limit: Mbps (S)
- Specify a maximum transfer rate.
This allows you to limit the network bandwidth consumed. The
value is specified in approximate Mega-bits per second which correlates
to network transport specifications. An adaptive algorithm is used so
the actual bandwidth usage may exceed Mbps occasionally.
See --bwlimit in rsync(1) for more details.
- stats: (B)
- Have rsync report transfer statistics.
See rsync(1) for more details.
Default value: 1
- summary: short|long (S)
- Specify summary format.
A short summary will only include final used values. A long
summary will include all configuration values.
With long format you custom options in the configuration files
will appear in the summary.
The default is short.
- tree: path [alias] (S)
- Specify a directory path on the client to backup.
If path is prefixed with a colon the transfer will be
done from an rsync daemon on the client otherwise the transfer
will be done through a remote shell process.
The optional alias specifies the path that should
appear in the index so dirvish-locate will report paths
consistant with common usage. This can help reduce confusion when
dealing with users unfamiliar with the physical topology of their
network provided files.
- no-run: (B)
- Don't actually do anything.
Process all configuration files, options and tests then
produce a summary/configuration file on standard output and exit.
I can't think why you would do this in a configuration file
but if you want to shoot yourself in the foot, be my guest.
- vault: vault (S)
- Specify the vault to store the image in.
Although multiple vaults may share a filesystem a given
vault cannot span filesystems. For filesystem purposes the
vault is the level of atomicity.
This will seldom be specified in a configuration file.
- whole-file: (B)
- Transfer whole files instead of just the parts that have changed.
This may be slightly faster for files that have more changed
than left the same such as compressed or encrypted files. In most cases
this will be slower when transferring over the network but will use less
CPU resources. This will be faster if the transfers are not over the
network or when the network is faster than the destination disk
subsystem.
- xdev: (B)
- Do not cross mount-points when traversing the tree on the client.
- zxfer: (B)
- Enable compression on data-transfer.