Cedar Backup has been designed to backup entire “pools” of machines. In any given pool, there is one master and some number of clients. Most of the work takes place on the master, so configuring a master is somewhat more complicated than configuring a client.
Backups are designed to take place over an RSH or SSH connection. Because RSH is generally considered insecure, you are encouraged to use SSH rather than RSH. This document will only describe how to configure Cedar Backup to use SSH; if you want to use RSH, you're on your own.
Once you complete all of these configuration steps, your backups will run as scheduled out of cron. Any errors that occur will be reported in daily emails to your root user (or whichever other user receives root's email). If you don't receive any emails, then you know your backup worked.
Note: all of these configuration steps should be run as the root user, unless otherwise indicated.
This setup procedure discusses how to set up Cedar Backup in the “normal case” for a master. If you would like to modify the way Cedar Backup works (for instance, by ignoring the store stage and just letting your backup sit in a staging directory), you can do that. You'll just have to modify the procedure below based on information in the remainder of the manual.
There are four parts to a Cedar Backup run: collect, stage, store and purge. The usual way of setting off these steps is through a set of cron jobs. Although you won't create your cron jobs just yet, you should decide now when you will run your backup so you are prepared for later.
Keep in mind that you do not necessarily have to run the collect action on the master. See notes further below for more information.
Backing up large directories and creating ISO filesystem images can be intensive operations, and could slow your computer down significantly. Choose a backup time that will not interfere with normal use of your computer. Usually, you will want the backup to occur every day, but it is possible to configure cron to execute the backup only one day per week, three days per week, etc.
Because of the way Cedar Backup works, you must ensure that your
backup always runs on the first day of your
configured week. This is because Cedar Backup will only clear
incremental backup information and re-initialize your media when
running on the first day of the week. If you skip running Cedar
Backup on the first day of the week, your backups will likely be
“confused” until the next week begins, or until you
re-run the backup using the --full
flag.
Cedar Backup relies on email for problem notification. This notification works through the magic of cron. Cron will email any output from each job it executes to the user associated with the job. Since by default Cedar Backup only writes output to the terminal if errors occur, this neatly ensures that notification emails will only be sent out if errors occur.
In order to receive problem notifications, you must make sure that email works for the user which is running the Cedar Backup cron jobs (typically root). Refer to your distribution's documentation for information on how to configure email on your system. Note that you may prefer to configure root's email to forward to some other user, so you do not need to check the root user's mail in order to see Cedar Backup errors.
Before using Cedar Backup, your writer device must be properly
configured. If you have configured your CD/DVD writer hardware to
work through the normal filesystem device path, then you just need
to know the path to the device on disk (something like
/dev/cdrw
). Cedar Backup will use the this
device path both when talking to a command like
cdrecord and when doing filesystem operations
like running media validation.
Your other option is to configure your CD writer hardware like a SCSI device (either because it is a SCSI device or because you are using some sort of interface that makes it look like one). In this case, Cedar Backup will use the SCSI id when talking to cdrecord and the device path when running filesystem operations.
See the section called “Configuring your Writer Device” for more information on writer devices and how they are configured.
There is no need to set up your CD/DVD device if you have decided not to execute the store action.
Due to the underlying utilities that Cedar Backup uses, the SCSI id may only be used for CD writers, not DVD writers.
Choose a user to be used for backups. Some platforms may come with
a “ready made” backup user. For other platforms, you
may have to create a user yourself. You may choose any id you
like, but a descriptive name such as backup
or
cback
is a good choice. See your
distribution's documentation for information on how to add a user.
Standard Debian systems come with a user named
backup
. You may choose to stay with this
user or create another one.
Once you have created your backup user, you must create an SSH keypair for it. Log in as your backup user, and then run the command ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa:
user@machine> ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa Generating public/private rsa key pair. Created directory '/home/user/.ssh'. Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 11:3e:ad:72:95:fe:96:dc:1e:3b:f4:cc:2c:ff:15:9e user@machine
The default permissions for this directory should be fine.
However, if the directory existed before you ran
ssh-keygen, then you may need to modify the
permissions. Make sure that the ~/.ssh
directory is readable only by the backup user (i.e. mode
700
), that the
~/.ssh/id_rsa
file is only readable and
writable by the backup user (i.e. mode 600
) and
that the ~/.ssh/id_rsa.pub
file is writable
only by the backup user (i.e. mode 600
or mode
644
).
If you have other preferences or standard ways of setting up your users' SSH configuration (i.e. different key type, etc.), feel free to do things your way. The important part is that the master must be able to SSH into a client with no password entry required.
Cedar Backup requires a backup directory tree on disk. This directory tree must be roughly large enough hold twice as much data as will be backed up from the entire pool on a given night, plus space for whatever is collected on the master itself. This will allow for all three operations - collect, stage and store - to have enough space to complete. Note that if you elect not to purge the staging directory every night, you will need even more space.
You should create a collect directory, a staging directory and a working (temporary) directory. One recommended layout is this:
/opt/ backup/ collect/ stage/ tmp/
If you will be backing up sensitive information (i.e. password
files), it is recommended that these directories be owned by the
backup user (whatever you named it), with permissions
700
.
You don't have to use /opt
as the root of your
directory structure. Use anything you would like. I use
/opt
because it is my “dumping
ground” for filesystems that Debian does not manage.
Some users have requested that the Debian packages set up a more
“standard” location for backups right
out-of-the-box. I have resisted doing this because it's
difficult to choose an appropriate backup location from within
the package. If you would prefer, you can create the backup
directory structure within some existing Debian directory such
as /var/backups
or
/var/tmp
.
Following the instructions in the section called “Configuration File Format” (above), create a configuration file for your machine. Since you are working with a master machine, you would typically configure all four action-specific sections: collect, stage, store and purge.
Note that the master can treat itself as a “client” peer for certain actions. As an example, if you run the collect action on the master, then you will stage that data by configuring a local peer representing the master.
Something else to keep in mind is that you do not really have to run the collect action on the master. For instance, you may prefer to just use your master machine as a “consolidation point” machine that just collects data from the other client machines in a backup pool. In that case, there is no need to collect data on the master itself.
The usual location for the Cedar Backup config file is
/etc/cback.conf
. If you change the location,
make sure you edit your cronjobs (below) to point the
cback script at the correct config file (using
the --config
option).
Configuration files should always be writable only by root (or by the file owner, if the owner is not root).
If you intend to place confidental information into the Cedar Backup configuration file, make sure that you set the filesystem permissions on the file appropriately. For instance, if you configure any extensions that require passwords or other similar information, you should make the file readable only to root or to the file owner (if the owner is not root).
Use the command cback validate to validate your configuration file. This command checks that the configuration file can be found and parsed, and also checks for typical configuration problems, such as invalid CD/DVD device entries. This command only validates configuration on the master, not any clients that the master might be configured to connect to.
Note: the most common cause of configuration problems is in not closing XML tags properly. Any XML tag that is “opened” must be “closed” appropriately.
This step must wait until after your client machines have been at least partially configured. Once the backup user(s) have been configured on the client machine(s) in a pool, attempt an SSH connection to each client.
Log in as the backup user on the master, and then use the command
ssh user@machine where
user
is the name of backup user
on the client machine, and
machine
is the name of the client
machine.
If you are able to log in successfully to each client without entering a password, then things have been configured properly. Otherwise, double-check that you followed the user setup instructions for the master and the clients.
Make sure that you have configured all of the clients in your backup pool. On all of the clients, execute cback --full collect. (You will probably have already tested this command on each of the clients, so it should succeed.)
When all of the client backups have completed, place a valid CD/DVD disc in your drive, and then use the command cback --full all. You should execute this command as root. If the command completes with no output, then the backup was run successfully.
Just to be sure that everything worked properly, check the logfile
(/var/log/cback.log
) on the master and each of
the clients, and also mount the CD/DVD disc on the master to
be sure it can be read.
You may also want to run cback purge on the master and each client once you have finished validating that everything worked.
If Cedar Backup ever completes “normally” but the disc that is created is not usable, please report this as a bug. [20] To be safe, always enable the consistency check option in the store configuration section.
Since Cedar Backup should be run as root, you should add a set of
lines like this to your /etc/crontab
file:
30 00 * * * root cback collect 30 02 * * * root cback stage 30 04 * * * root cback store 30 06 * * * root cback purge
You should consider adding the --output
or
-O
switch to your cback
command-line in cron. This will result in larger logs, but could
help diagnose problems when commands like
cdrecord or mkisofs fail
mysteriously.
You will need to coordinate the collect and purge actions on clients so that their collect actions complete before the master attempts to stage, and so that their purge actions do not begin until after the master has completed staging. Usually, allowing an hour or two between steps should be sufficient. [21]
For general information about using cron, see the manpage for crontab(5).
On a Debian system, execution of daily backups is controlled by
the file /etc/cron.d/cedar-backup2
. As
installed, this file contains several different settings, all
commented out. Uncomment the “Master machine”
entries in the file, and change the lines so that the backup
goes off when you want it to.