= rear(8)
:version: v1.17
:date: 19 February 2015
:data-uri:
:doctype: manpage
:lang: en
:quirks:


== NAME
rear - bare metal disaster recovery and system migration tool


== SYNOPSIS
*rear* [*-dDsSvV*] [*-r* _KERNEL_] _COMMAND_ [-- _ARGS_...]


== DESCRIPTION
Relax-and-Recover is the leading Open Source disaster recovery solution. It
is a modular framework with many ready-to-go workflows for common situations. 

Relax-and-Recover produces a bootable image. This image can repartition the
system. Once that is done it initiates a restore from backup. Restores to
different hardware are possible. Relax-and-Recover can therefore be used as a 
migration tool as well.

Currently Relax-and-Recover supports various boot media (incl. ISO, PXE,
OBDR tape, USB or eSATA storage), a variety of network protocols (incl.
sftp, ftp, http, nfs, cifs) for storage and backup as well as a multitude
of backup strategies (incl.  IBM Tivoli Storage Manager, HP DataProtector,
Symantec NetBackup, EMC NetWorker, Bareos,
Bacula, rsync, rbme). This results in a bootable image that os capable of
booting via PXE, DVD/CD, bootable tape or virtual provisioning.

Relax-and-Recover was designed to be easy to set up, requires no maintenance
and is there to assist when disaster strikes. Its setup-and-forget nature
removes any excuses for not having a disaster recovery solution implemented.

Recovering from disaster is made very straight-forward by a 2-step recovery
process so that it can be executed by operational teams when required.
When used interactively (e.g. when used for migrating systems), menus help
make decisions to restore to a new (hardware) environment.

Extending Relax-and-Recover is made possible by its modular framework.
Consistent logging and optionally extended output help understand the concepts
behind Relax-and-Recover and help debug during development.

Relax-and-Recover comes with ABSOLUTELY NO WARRANTY; for details see
the GNU General Public License at: http://www.gnu.org/licenses/gpl.html


== OPTIONS

=== GLOBAL OPTIONS

-d::
    *debug mode* (log debug messages to log file)

-D::
    *debugscript mode* (log every function call)

-r KERNEL::
    kernel version to use (by default use running kernel)

-s::
    *simulation mode* (show what scripts rear would include)

-S::
    *step-by-step mode* (acknowledge each script individually)

-v::
    *verbose mode* (show progress output)

-V::
    version information

=== COMMANDS

*checklayout*::
    check if the disk layout has changed since the last run of
    mkbackup/mkrescue

*dump*::
    dump configuration and system information; please run this to verify
    your setup

*format*::
    format and label USB or tape media to be used with rear;
    +
    first argument is the USB or tape device to use, eg. _/dev/sdX_ or
    _/dev/stX_

*help*::
    print full list of commands and options

*mkbackup*::
    create rescue media and backup the system (only for internal backup
    methods)

*mkbackuponly*::
    backup the system (only for internal backup methods) without creating
    rescue media

*mkrescue*::
    create rescue media only

*recover*::
    recover the system; can be used only when running from the rescue media

*validate*::
    submit validation information

Use 'rear -v help' for more advanced commands.


== BACKGROUND INFORMATION
The process of bare metal disaster recovery consists of two parts:

 - Recreate the system layout
 - Restore the data to the system

Most backup software solutions are very good at restoring data but do not
support recreating the system layout. Relax-and-Recover is very good at
recreating the system layout but works best when used together with
supported backup software.

In this combination Relax-and-Recover recreates the system layout and calls
the backup software to restore the actual data. Thus there is no unnessecary
duplicate data storage and the Relax-and-Recover rescue media can be very small.

For demonstration and special use purposes Relax-and-Recover also includes
an internal backup method, NETFS, which can be used to create a simple tar.gz
archive of the system. For all permanent setups we recommend using something
more professional for backup, either a traditional backup software (open
source or commercial) or rsync with hardlink based solutions, e.g. RSYNC
BACKUP MADE EASY.

== RESCUE IMAGE CONFIGURATION
The +OUTPUT+ variable defines how from where our rescue image will be booted and
the +OUTPUT_URL+ variable defines where the rescue image should be send to.
Possible +OUTPUT+ setting are:

OUTPUT=*RAMDISK*::
Create only the Relax-and-Recover initramfs.

OUTPUT=*ISO*::
*(Default)* Create a bootable ISO9660 image on disk as _rear-$(hostname).iso_

OUTPUT=*PXE*::
Create on a remote PXE/NFS server the required files (such as
configuration file, kernel and initrd image

OUTPUT=*OBDR*::
Create a bootable OBDR tape (optionally including the backup archive).
Specify the OBDR tape device by using +TAPE_DEVICE+.

OUTPUT=*USB*::
Create a bootable USB disk (using extlinux). Specify the USB storage
device by using +USB_DEVICE+.

When using +OUTPUT=ISO+, +RAMDISK+, +OBDR+ or +USB+ you should provide the 
backup target location through the +OUTPUT_URL+ variable. Possible +OUTPUT_URL+ 
settings are:

OUTPUT_URL=*file://*::
Write the image to disk. The default is in _/var/lib/rear/output/_.

OUTPUT_URL=*fish://*::
Write the image using +lftp+ and the FISH protocol.

OUTPUT_URL=*ftp://*::
Write the image using +lftp+ and the FTP protocol.

OUTPUT_URL=*ftps://*::
Write the image using +lftp+ and the FTPS protocol.

OUTPUT_URL=*hftp://*::
Write the image using +lftp+ and the HFTP protocol.

OUTPUT_URL=*http://*::
Write the image using +lftp+ and the HTTP (PUT) procotol.

OUTPUT_URL=*https://*::
Write the image using +lftp+ and the HTTPS (PUT) protocol.

OUTPUT_URL=*sftp://*::
Write the image using +lftp+ and the secure FTP (SFTP) protocol.

OUTPUT_URL=*rsync://*::
Write the image using +rsync+ and the RSYNC protocol (SSH only).

OUTPUT_URL=*sshfs://*::
Write the image using sshfs and the SSH protocol.

OUTPUT_URL=*null*::
Do not copy the ISO image from _/var/lib/rear/output/_ to an external destination.
Useful in combination with an _external_ backup program, or when +BACKUP_URL=iso://backup+

== BACKUP SOFTWARE INTEGRATION
Currently Relax-and-Recover supports the following backup methods. Please
distinguish carefully between Relax-and-Recover support for 3rd party
backup software and Relax-and-Recover internal backup methods. The latter
also creates a backup of your data while the former will only integrate
Relax-and-Recover with the backup software to restore the data with the
help of the backup software without actually creating backups. This means
that for all non-internal backup software you *must* take care of creating
backups yourself.

Especially the +rear mkbackup+ command can be confusing as it is only
useful for the internal backup methods and has no function at all with
the other (external) backup methods.

The following backup methods need to
be set in Relax-and-Recover with the +BACKUP+ option. As mentioned we have
two types of +BACKUP+ methods - _internal_ and _external_.

The following +BACKUP+ methods are _external_ of Relax-and-Recover meaning
that you are responsible of backups being made:

BACKUP=*REQUESTRESTORE*::
*(default)* Not really a backup method at all, Relax-and-Recover simply
halts the recovery and requests that somebody will restore the data
to the appropriate location (e.g. via SSH). This method works especially
well with an rsync bases backup that is pushed back to the backup
client.

BACKUP=*EXTERNAL*::
Internal backup method that uses an arbitrary external command to
create a backup and restore the data.

BACKUP=*DP*::
Use HP Data Protector to restore the data.

BACKUP=*GALAXY*::
Use CommVault Galaxy 5 to restore the data.

BACKUP=*GALAXY7*::
Use CommVault Galaxy 7 to restore the data.

BACKUP=*GALAXY10*::
Use CommVault Galaxy 10 (or Simpana 10) to restore the data.

BACKUP=*NBU*::
Use Symantec NetBackup to restore the data.

BACKUP=*TSM*::
Use IBM Tivoli Storage Manager to restore the data. The Relax-and-Recover
result files (e.g. ISO image) are also saved into TSM.

BACKUP=*NSR*::
Using EMC NetWorker (Legato) to restore the data.

BACKUP=*SESAM*::
Using SEP Sesam to restore the data.

BACKUP=*RBME*::
Use Rsync Backup Made Easy (rbme) to restore the data.

BACKUP=*BAREOS*::
Use Open Source backup solution BAREOS (a fork a BUCULA) to restore the data.

BACKUP=*BACULA*::
Use Open Source backup solution BACULA to restore the data.

BACKUP=*DUPLICITY*::
Use encrypted bandwidth-efficient backup solution using the rsync algorithm to restore the data.

The following +BACKUP+ methods are _internal_ of Relax-and-Recover:

BACKUP=*NETFS*::
Internal backup method which can be used to create a simple backup
(tar archive).

BACKUP=*RSYNC*::
Use rsync to restore data.


If your favourite backup software is missing from this list, please submit
a patch or ask us to implement it for you.

When using +BACKUP=NETFS+ you should provide the backup target location
through the +BACKUP_URL+ variable. Possible +BACKUP_URL+ settings are:


BACKUP_URL=*file://*::
To backup to local disk, use +BACKUP_URL=file:///directory/path/+

BACKUP_URL=*nfs://*::
To backup to NFS disk, use +BACKUP_URL=nfs://nfs-server-name/share/path+

BACKUP_URL=*tape://*::
To backup to tape device, use +BACKUP_URL=tape:///dev/nst0+ or alternatively,
simply define +TAPE_DEVICE=/dev/nst0+

BACKUP_URL=*cifs://*::
To backup to a Samba share (CIFS), use
+BACKUP_URL=cifs://cifs-server-name/share/path+. To provide credentials for
CIFS mounting use a _/etc/rear/.cifs_ credentials file and define
+BACKUP_OPTIONS="cred=/etc/rear/.cifs"+ and pass along:
+
----
username=_username_
password=_secret password_
domain=_domain_
----

BACKUP_URL=*usb://*::
To backup to USB storage device, use +BACKUP_URL=usb:///dev/disk/by-path/REAR-000+
or use a real device node or a specific filesystem label. Alternatively, you
can specify the device using +USB_DEVICE=/dev/disk/by-path/REAR-000+.
+
If you combine this with +OUTPUT=USB+ you will end up with a bootable USB
device.

BACKUP_URL=*sshfs://*::
To backup to a remote server via sshfs (SSH protocol), use 
+BACKUP_URL=sshfs://user@remote-system.domain.org/home/user/backup-dir/+
+
It is advisable to add *ServerAliveInterval 15* in the +/root/.ssh/config+
file for the remote system (remote-system.domain.org).

BACKUP_URL=*iso://*::
To include the backup within the ISO image. It is important that the +BACKUP_URL+ and
+OUTPUT_URL+ variables are different. E.g.
+
----
BACKUP_URL=iso:///backup/
OUTPUT_URL=nfs://server/path/
----

When using +BACKUP=NETFS+ there is an option to select a +BACKUP_TYPE=incremental+
 to have +rear+ make incrementals until the next +FULLBACKUPDAY="Mon"+ has reached.

== CONFIGURATION
To configure Relax-and-Recover you have to edit the configuration files in
_/etc/rear/_.  All _*.conf_ files there are part of the configuration, but
only _site.conf_ and _local.conf_ are intended for the user configuration.
All other configuration files hold defaults for various distributions and
should not be changed.

In _/etc/rear/templates/_ there are also some template files which are used
by Relax-and-Recover to create configuration files (mostly for the boot
environment).  Modify the templates to adjust the information contained in
the emails produced by Relax-and-Recover. You can use these templates to
prepend your own configurations to the configuration files created by
Relax-and-recover, for example you can edit _PXE_pxelinux.cfg_ to add some
general pxelinux configuration you use.

In almost all circumstances you have to configure two main settings and their
parameters: The backup method and the output method.

The backup method defines, how your data was saved and wether Relax-and-Recover
should backup your data as part of the mkrescue process or wether you use an
external application, e.g. backup software to archive your data.

The output method defines how the rescue system is written to disk and how you
plan to boot the failed computer from the rescue system.

See the default configuration file _/usr/share/rear/conf/default.conf_ for
an overview of the possible methods and their options.

An example to use TSM for backup and ISO for output would be to add
these lines to _/etc/rear/local.conf_ (no need to define a +BACKUP_URL+
when using an external backup solution):

    BACKUP=TSM
    OUTPUT=ISO

And if all your systems use NTP for time synchronisation, you can also
add these lines to _/etc/rear/site.conf_

    TIMESYNC=NTP

Do not forget to distribute the _site.conf_ to all your systems.

The resulting ISO image will be created in _/var/lib/rear/output/_.
You can now modify the behaviour by copying the appropriate
configuration variables from _default.conf_ to _local.conf_ and
changing them to suit your environment.


== EXIT STATUS
0::
    Successful program execution.
>0::
    Usage, syntax or execution errors. Check the log file in
    _/var/log/rear/_ for more information.


== EXAMPLES
To print out the current settings for +BACKUP+ and +OUTPUT+ methods and some
system information. This command can be used to see the supported features
for the given release and platform.

    # rear dump

To create a new rescue environment. Do not forget to copy the resulting
rescue system away so that you can use it in the case of a system failure.

    # rear -v mkrescue

To create a new rescue image together with a complete archive of your local
system run the command:

   # rear -v mkbackup


== FILES
/usr/sbin/rear::
The program itself.

/etc/rear/local.conf::
System specific configuration can be set here.

/etc/rear/site.conf::
Site specific configuration can be set here (not created by default).

/var/log/rear/::
Directory holding the log files.

/tmp/rear.##############::
Relax-and-Recover working directory. If Relax-and-Recover exits with an error,
you must remove this directory manually.

/usr/share/rear::
Relax-and-Recover script components.

/usr/share/rear/conf/default.conf::
Relax-and-Recover default values. Contains a complete set of parameters
and its explanation.  Please do not edit or modify. Copy values to
_local.conf_ or _site.conf_ instead.


== BUGS
Feedback is welcome, please report any issues or improvements to our
issue-tracker at: http://github.com/rear/issues/

Furthermore, we welcome pull requests via GitHub.

== SEE ALSO
Relax-and-Recover comes with extensive documentation located in 
_/usr/share/doc_.


== AUTHORS
Gratien Dhaese, Schlomo Schapiro, Jeroen Hoekx and Dag Wieers.

Lars Pinne (original man page).

Relax-and-Recover is a collaborative process using Github at:
http://github.com/rear/

The Relax-and-Recover website is located at: http://relax-and-recover.org/


== COPYRIGHT
(c) 2006-2015

Schlomo Schapiro

Gratien Dhaese, IT3 Consultants

Jeroen Hoekx

Dag Wieers, Dagit Linux Solutions

Relax-and-Recover comes with ABSOLUTELY NO WARRANTY; for details
see the GNU General Public License at http://www.gnu.org/licenses/gpl.html
