Backup v3.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.

Archives and Databases

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

Databases create backups of one of the following supported 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: