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 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.
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 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.
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
You can use any number of the following Storages to store your backup:
All of the above Storages (except RSync) support:
Cycling to keep and rotate multiple copies of your stored backups.
Splitter to break up a large backup package into smaller files.
Syncers are processed after your final backup package has been stored and allow you to perform file synchronization.
Backup includes the following Syncers:
Push
) or remote-to-local (Pull
) operations. (Core)A backup model may contain only Syncers as well.
Notifiers are used to send notifications upon successful and/or failed completion of your backup model.
Supported notification services include: