Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Backup is a RubyGem, written for Linux and Mac OSX, that allows you to easily perform backup operations on both your remote, as well as your local environment. It provides you with an elegant DSL in Ruby for modeling (configuring) your backups. Backup has built-in support for various databases, storage protocols/services, syncers, compressors, e…

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 generators
Octocat-spinner-32 lib
Octocat-spinner-32 setup
Octocat-spinner-32 spec
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.textile
Octocat-spinner-32 VERSION
Octocat-spinner-32 backup.gemspec
README.textile

Backup

A Backup Ruby Gem

Backup is a Ruby Gem written for Unix and Rails environments. It can be used both with and without the Ruby on Rails framework! This gem offers a quick and simple solution to backing up databases such as MySQL/PostgreSQL and Files/Folders. All backups can be transferred to Amazon S3 or any remote server you have access to, using either SCP, SFTP or regular FTP. Backup handles Compression, Archiving, Encryption, Backup Cleaning (Cycling) and supports Email Notifications.

Authors/Maintainers

Backup’s Current Capabilities

Storage Methods

  • Amazon S3
  • Remote Server (Available Protocols: SCP, SFTP, FTP)
  • Local server (Example Locations: Another Hard Drive, Network path) (coming in the next gem release)

Adapters

  • MySQL
  • SQLite (in the next gem release)
  • PostgreSQL
  • Archive (Any files and/or folders)
  • Custom (Anything you can produce using the command line)

Archiving

Handles archiving for the Archive and Custom adapters.

Encryption

Handles encryption of all backups for any adapter.
To decrypt a “Backup encrypted file” you can use Backup’s built-in utility command:

sudo backup --decrypt /path/to/encrypted/file.enc

Backup Cleaning

With Backup you can very easily specify how many backups you would like to have stored (per backup procedure!) on your Amazon S3, Remote or Local server. When the limit you specify gets exceeded, the oldest backup will automatically be cleaned up.

Email Notifications

You will be able to specify whether you would like to be notified by email when a backup successfully been stored.
Simply fill in the email configuration block and set “notify” to true inside the backup procedure you would like to be notified of.

Quick Example of a Single Backup Setting/Procedure inside the Backup Configuration File

backup 'mysql-backup-s3' do
  adapter :mysql do
    user      'user'
    password  'password'
    database  'database'
  end
  storage :s3 do
    access_key_id     'access_key_id'
    secret_access_key 'secret_access_key'
    bucket            '/bucket/backups/mysql/'
    use_ssl           true
  end
  keep_backups 25
  encrypt_with_password 'my_password'
  notify true
end

Everything above should be pretty straightforward, so now, using the “trigger” we specified between
the backup and do you can execute this backup procedure like so:

Rails Environment

rake backup:run trigger=mysql-backup-s3

Unix Environment

sudo backup --run mysql-backup-s3

That’s it. This was a simple example of how it works.

Interested in trying out Backup?

Getting started with Backup for the Unix Environment

http://wiki.github.com/meskyanichi/backup/getting-started-unix

Getting started with Backup for the Rails Environment

http://wiki.github.com/meskyanichi/backup/getting-started-ruby-on-rails

Production Mode RAILS_ENV

http://wiki.github.com/meskyanichi/backup/production-mode

Encrypting and Decrypting

http://wiki.github.com/meskyanichi/backup/encrypting-and-decrypting

Backup Configuration File (All Adapters, Storage Methods, Mail Settings and Options)

http://wiki.github.com/meskyanichi/backup/configuration-file

Unix Utility Commands and Rails Rake Tasks

http://wiki.github.com/meskyanichi/backup/utility-commands

http://wiki.github.com/meskyanichi/backup/rake-tasks

Automatic Backups

http://wiki.github.com/meskyanichi/backup/automatic-backups

Capistrano Recipes

http://wiki.github.com/meskyanichi/backup/capistrano-recipes

Capistrano, Whenever!

http://wiki.github.com/meskyanichi/backup/capistrano-whenever

Understanding “The Backup Database”

http://wiki.github.com/meskyanichi/backup/the-backup-database

Trouble Shooting

http://wiki.github.com/meskyanichi/backup/troubleshooting

Requirements

http://wiki.github.com/meskyanichi/backup/requirements

Resources

http://wiki.github.com/meskyanichi/backup/resources

Requests

If anyone has any requests, please send us a message or post it on the issues page!

Suggestions?

Send us a message! Fork the project!

Found a Bug?

http://github.com/meskyanichi/backup/issues

Contributors

List of people that forked and added stuff!

Michael van Rooijen | Final Creation. (http://final-creation.com)

Something went wrong with that request. Please try again.