Backup v4.x Overview

Project Status: Maintenance-Only

This project is not under active development, although we will continue to provide support for current users, and at least one more maintenance release: version 5.0. The version 5.0 release will include support for Ruby 2.4, and various other fixes. Future releases of Backup will only include bug fixes.

If you use this project and would like to develop it further, please introduce yourself on the maintainers wanted ticket.

Backup is a DSL

Backup allows you to model your backup jobs using a Ruby DSL:

Backup::Model.new(:my_backup, 'Description for my_backup') do
  # ... Model Components ...
end

The :my_backup symbol is the model’s trigger and used to perform the job:

$ backup perform --trigger my_backup

Below is an overview of the Model Components available, which are added to define the actions to be performed.

See also Getting Started for a simple walk-through using Backup’s Generator to familiarize yourself with setting up, configuring and running a backup job.

Core and Extra Features

This documentation marks features as either Core, Extra, or BROKEN.

Core features are part of Backup. These features are tested for each release, and will be maintained.

Extra features are included in Backup, but are not tested for each release. These will be maintained if possible, but may be removed if is not practical to continue supporting them.

A BROKEN feature no longer works due to changes in the remote service, and will be removed from future releases.

Archives and Databases

Archives create basic tar archives. Both GNU and BSD tar are supported.

Databases create backups of one of the following databases:

Any number of Archives and Databases may be defined within a backup model.

Compressors and Encryptors

Adding a Compressor to your backup will compress all the Archives and Database backups within your final archive package. Backup includes a Gzip, Bzip2 and Custom compressor.

Adding an Encryptor allows you to encrypt your final backup package. Backup includes a OpenSSL and GPG encryptor.

Your final backup package might look something like this:

$ gpg --decrypt my_backup.tar.gpg --outfile my_backup.tar
$ tar -tvf my_backup.tar
  my_backup/
  my_backup/archives/
  my_backup/archives/user_avatars.tar.gz
  my_backup/archives/log_files.tar.gz
  my_backup/databases/
  my_backup/databases/PostgreSQL.sql.gz
  my_backup/databases/Redis.rdb.gz

Storages

You can use any number of the following Storages to store your backup:

All of the above Storages (except RSync) support:

Syncers

Syncers are processed after your final backup package has been stored and allow you to perform file synchronization.

Backup includes the following Syncers:

A backup model may contain only Syncers as well.

Notifiers

Notifiers are used to send notifications upon successful and/or failed completion of your backup model.

Supported notification services include: