aboutsummaryrefslogtreecommitdiff
path: root/doc/beam-module.5in
diff options
context:
space:
mode:
Diffstat (limited to 'doc/beam-module.5in')
-rw-r--r--doc/beam-module.5in278
1 files changed, 0 insertions, 278 deletions
diff --git a/doc/beam-module.5in b/doc/beam-module.5in
deleted file mode 100644
index 9ba239f..0000000
--- a/doc/beam-module.5in
+++ /dev/null
@@ -1,278 +0,0 @@
-.\" This file is part of BEAM -*- nroff -*-
-.\" Copyright (C) 2012-2014 Sergey Poznyakoff
-.\"
-.\" BEAM is free software; you can redistribute it and/or modify
-.\" it under the terms of the GNU General Public License as published by
-.\" the Free Software Foundation; either version 3, or (at your option)
-.\" any later version.
-.\"
-.\" BEAM is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with BEAM. If not, see <http://www.gnu.org/licenses/>.
-.\"
-.TH BEAM\-MODULE 5 "March 19, 2014" "BEAM" "BEAM Programmer Reference"
-.SH NAME
-beam\-module \- format of
-.BR beam (1)
-modules
-.SH DESCRIPTION
-This manual page explains how to write new modules for
-.BR beam (1).
-.PP
-.B Beam
-is a modular backup system written in shell. It is mainly designed to
-create incremental backups of file systems using
-.BR tar (1),
-and restore from such backups. However, there are special kinds of
-data that cannot be reliably backed up using this method. An example
-of these are SQL databases. Simply archiving the database files while
-the database engine is running is not likely to produce a reliable
-backup \- such files will most probably be in inconsistent state,
-because of eventual transactions not being finished at the time of the
-backup. While stopping the database for the duration of the backup
-could produce a consistent backup, it is usually not an option. The
-obvious solution in this case is to create a database
-.B dump
-using the DBMS-specific software, and archive the created file or files.
-.PP
-To handle such cases,
-.B beam
-introduces a special entity, called
-.BR "backup item" .
-.SS Backup items
-A backup item is a set of data that are backed up and restored using a
-particular
-.BR method .
-.PP
-In
-.B beam
-configuration, backup items are identified by unique names. The
-method used to back up an item is defined by the \fIitem\fB_type\fR
-configuration keyword.
-.SS Modules
-For each backup method, defined by \fIitem\fB_type\fR keywords,
-.B beam
-looks for a shell script, called \fImethod\fB.sh\fR and located in the
-.B @LIBDIR@/beam
-directory.
-.PP
-For example, if the configuration file contains:
-.sp
-.nf
-.in +2
-backup_items="cfg db"
-
-cfg_type=fs
-db_type=mysql
-.in
-.fi
-.sp
-then the following files will be loaded:
-
- @LIBDIR@/beam/fs.sh
- @LIBDIR@/beam/mysql.sh
-
-.PP
-These files should provide the functions used to list, back up and
-restore the corresponding items.
-.SH MODULE FILE FORMAT
-Each module file must define the following functions (\fIname\fR
-stands for the name of the module):
-.TP
-.BR \fIname\fB_check( item )
-This function is called once for each backup item before starting
-backup or restore. Its purpose is to check whether the configuration
-for that particular item is correct (e.g. whether all the mandatory
-configuration keywords are defined and have consistent values, etc.)
-
-If the configuration is correct, the function shall return
-.BR 0 .
-Otherwise, it shall produce appropriate diagnostic messages using
-.B error
-or
-.B abend
-(see below) and return a non-zero value.
-
-As an example, consider the
-.B check
-function from the
-.B fs
-module. It verifies whether the two mandatory parameters,
-\fIitem\fB_dir\fR and \fIitem\fB_files\fR, are defined:
-.sp
-.nf
-.in +2
-fs_check() {
- local rc=0 root files
-
- eval root=\\$${1}_dir
- eval files=\\$${1}_files
-
- test \-z "$root" && rc=1 && error "${1}_dir not set"
- test \-z "$files" && rc=1 && error "${1}_files not set"
- return $rc
-}
-.in
-.fi
-.TP
-.BR \fIname\fB_list( item , prefix )
-Produces a listing of the
-.B item
-prefixed by
-.B prefix .
-
-This function is used by the
-.B beam list
-command (see
-.BR beam\-list (1)).
-
-The following is a simplified example from the
-.B fs
-module:
-.sp
-.nf
-.in +2
-fs_list() {
- local dir files
-
- eval dir=\\$${1}_dir files=\\$${1}_files
- echo "${2}Files and directories in $dir:$files"
-}
-.in
-.fi
-.TP
-.BR \fIname\fB_backup( item )
-This function backs up the given
-.BR item .
-
-A very simplified version from
-the
-.B fs
-module illustrates this:
-.sp
-.nf
-.in +2
-fs_backup() {
- local basename text root files exclude addopts s e
-
- basename=$1\-$week\-$round\-$level
- eval dir=\\$${1}_dir files=\\$${1}_files
-
- $dry_run tar $verbose $taroptions \\
- \-f $backup_archive_dir/$basename.$tar_suffix \\
- \-\-listed=$backup_snapshot_dir/$basename.db \\
- \-C $dir $files
-}
-.TP
-.BR \fIname\fB_restore( item )
-This function does the opposite to \fIname\fB_backup\fR: it restores
-the given item from the backup.
-.SH VARIABLES
-Apart from the variables defined in
-.BR beam.conf (5),
-a module can access the following ones:
-.TP
-.B week
-Number of the current week in year, as a two-digit decimal number in
-the range 01 to 53. Weeks are numbered starting with the first Sunday
-as the first day of week 01. For more details, see
-.BR strftime (3)
-conversion
-.BR %U .
-.TP
-.B round
-Number of this backup round. See
-.BR beam\-backup (1),
-for a detailed discussion.
-.TP
-.B level
-Incremental level of this backup.
-.TP
-.B dry_run
-If the
-.B dry\-run
-module is enabled, the value of this variable is
-.BR echo ,
-otherwise it is empty. Place this variable in front of a shell
-command to ensure it will be printed, but not executed when in
-.B dry\-run
-mode. For example:
-.sp
-.nf
-.in +2
- $dry_run rm $dbdir/*
-.in
-.fi
-.sp
-The
-.B dry\-run
-mode is enabled by the
-.BR \-\-dry\-run " or " \-n
-option to
-.BR beam\-backup (1)
-and
-.BR beam\-restore (1).
-.TP
-.B verbose
-In verbose mode, the value of this variable is
-.BR \-v ,
-otherwise it is empty. Most programs use the
-.B \-v
-option to enable the verbose mode, so this variable can be used in
-constructing their command lines, e.g.:
-.sp
-.nf
-.in +2
- $dry_run tar $verbose \-c \-f $archive .
-.in
-.fi
-.sp
-.TP
-.B tarerror
-Keeps the number of errors that occurred so far. Increase this
-variable when an error occurred, that cannot be fixed automatically by
-the module. See also the
-.B tarcode
-function below.
-.SH FUNCTIONS
-The following functions are available for use in modules:
-.TP
-.B logit
-Writes its arguments to the selected log stream. The resulting line
-is prefixed with the current date.
-.TP
-.B error
-Write its arguments to the standard error, prefixing the line with the
-current date.
-.TP
-.B abend
-This function takes 2 or more arguments. The first argument is a
-decimal number, treated as the shell exit code. The rest of arguments
-supplies a diagnostic message. The function writes that message to
-the standard error, and returns the supplied code to the shell.
-.TP
-.B tarcode
-The argument is a decimal return code from a
-.BR tar (1)
-invocation. The function prints a human-readable description of the
-error code and increases
-.B tarerror
-if it is equal to or greater than 2.
-.SH "SEE ALSO"
-.BR beam (1),
-.BR beam.conf (5).
-.SH AUTHORS
-Sergey Poznyakoff
-.SH "BUG REPORTS"
-Report bugs to <@PACKAGE_BUGREPORT@>.
-.\" Local variables:
-.\" eval: (add-hook 'write-file-hooks 'time-stamp)
-.\" time-stamp-start: ".TH [A-Z_][A-Z0-9_\\-]* [0-9] \""
-.\" time-stamp-format: "%:B %:d, %:y"
-.\" time-stamp-end: "\""
-.\" time-stamp-line-limit: 20
-.\" end:

Return to:

Send suggestions and report system problems to the System administrator.