Skip to content
steppicrew edited this page Sep 12, 2010 · 10 revisions

Welcome! This is Rabak, a backup tool

What’s Rabak?

Rabak is a reliable rsync based backup system, simple to configure,
simple to run, simple to restore data with.

Rabak’s strategy is to always make full backups, usually to one or more
attached external hard drives. Using rsync’s clever hard linking abilities,
the resulting backups use up little target space. Rabak uses simple and
flexible configuration files and supports backup to or from remote machines.
It even supports remote to remote backup (think remote control).

Rabak is very good for unattended safe remote backups, and has support
for postgresql and mysql backups via database dump streaming.

It’s simple to configure different, multiple sources for one backup set.
There’s support for file filters that hide the complexity of the rsync filters
(and make them actually usable).

Requirements

You need Linux or Cygwin. Other plattforms may work too. We didn’t try.

You need rsync. I know rabak does’t work before version 2.6.4.
Maybe even a newer one is requires. The newer the better.

You need Perl, I don’t know which version. Probably >= 5.8

You need the Mail::Send and IPC::Run perl module. Fetch it from CPAN:


cpan -i Mail::Send
cpan -i IPC::Run

To use faster-dupemerge, you will need the Perl module Digest::SHA1.
To install it do:


cpan -i Digest::SHA1

Installation

Make a directory /usr/local/rabak and copy the contents of this
directory there.

Quick Start

Change to the installation directory:


cd /usr/local/rabak

Look at the documentation:


./rabak doc

Make a test backup:


./rabak -c rabak.sample.cf backup sample

Have a look at the result:


ls -lA test-bak

Read the documentation:


perldoc RabakLib::Doc

Configure Rabak:


cp rabak.sample.cf rabak.cf
nano -w rabak.cf

The ‘cd’ is a bit awkward, I know. I’ll find a trick to let
Rabak find it’s libraries later.

Feature Tests

If you have the right to run mount and mknod, you can test more
features by doing:


./stuff/sample-env-make

This produces a test environment in /tmp/rabak-sample-data. Data will be
backed up into /tmp/rabak-sample-backup. You can run the sample configurations
provided in rabak.sample.cf:


./rabak -c rabak.sample.cf backup sample_firstof
./rabak -c rabak.sample.cf -i Tue backup sample_targetgroup
./rabak -c rabak.sample.cf -i Tue2 backup sample_targetgroup

When you’re done, you can remove the test environment:


./stuff/sample-env-remove

Check out the docs and the *.cf files for more insight.

Further reading

Documentation is available through rabak itself:


./rabak doc

The most recent version and complete docs are available at:
www.raisin.de/rabak

Developers

You can extend Rabak and add backup types. Have a look into
the RabakLib/Path/Source directory.

Have fun!

Dietrich Raisin <info1@raisin.de>

Stephan Hantigk <rabak@steppicrew.de>

License

See the LICENSE file.