mrb - manage incremental snapshots with rsync/make.
mrb is a simple aid to creating efficient incremental
snapshots of a set, or sets, of directories whenever that may be required.
It may be used as part of a regular automated backup regime, or for manually
checkpointing changes at convenient points in time.
The following commands are recognised (where 'MODULE' is
the name of one of your snapshot definitions):
- new-MODULE
- Create a skeleton definition for a new snapshot 'MODULE'.
- dest-MODULE
- Create the destination dir for 'MODULE'. This directory must exist
to create a snapshot.
- snap-MODULE
- Create a snapshot of 'MODULE'.
- sync
- Create snapshots of all defined modules. If run as root this may be
configured to include the modules of other users too (see MRB_SYNC_USERS
in ~/.mrb/defaults).
- help
- Show mrb's own help text.
The following files may be used to specify global and local
configuration options.
- /etc/default/mrb
- system default configuration.
- ~/.mrb/defaults
- per-user configuration.
The following options control behaviour for all of a user's
modules.
- MRB_SNAPSHOT_LOG
- An optional file path where transfer details will be recorded. If unset
these details will not be logged.
- MRB_SYNC_USERS
- A space separated list of users whose modules should be included in a
sync. This is mostly only useful for root, as mrb will assume the
identity of each user before creating snapshots of their modules. If
unset, only the invoking user's modules will be sync'ed.
- MRB_CONFDIR
- An space separated list of the directories to search for module definition
(*.mrc) files. They will be searched in the order given, with new modules
added by default to the last one listed. There should be few reasons to
change the default value.
The default MRB_CONFDIR value will search for module
definitions in:
- /etc/mrb/*.mrc
- ~/.mrb/*.mrc
- Those created by new-MODULE will be placed in this latter
location by default.
In each case module below is the name of the particular
module that the value set should apply to. These options should be defined
in a file named module.mrc.
- module_SRC
- A space separated list of the files and (top level) directories to include
in the snapshots for this module. These may be remote urls.
- module_DEST
- The (local) directory root where snapshots of module should be
stored.
- module_INCLUDE
- An optional list of rsync(1) include patterns.
- module_EXCLUDE
- An optional list of rsync(1) exclude patterns.
- module_FILTER
- An optional list of rsync(1) filter patterns.
- module_FILTER_FILE
- An optional filename for rsync(1) dir-merge filtering support.
- module_RSYNC_OPTIONS
- Optional additional rsync(1) options to pass verbatim when it is
invoked.
- module_PRECOMMAND
- An optional shell command to invoke just prior to creating a new snapshot.
If the command does not return a successful exit status, then the snapshot
creation will be aborted before it begins. It may be used to mount
removable media or similar.
- module_POSTCOMMAND
- An optional shell command to execute after making the snapshot. It will
not be called if the snaphot creation failed at an earlier stage, and its
return status may halt a sync operation if it fails with more modules
still to process. It may be used, for example, to unmount removable media
again.
- module_USER
- An optional user name to check that mrb is running as before performing a
snapshot. This can be used to ensure you have the correct permisson to
access the files being mirrored before you get too far.
mrb was written by Ron <ron@debian.org>.