bigbackup 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,68 @@
1
+ #----------------------------------------------------------------------------
2
+ # Ignore these files when commiting to a git repository
3
+ #----------------------------------------------------------------------------
4
+
5
+ # bundler state
6
+ /.bundle
7
+ /vendor/bundle/
8
+
9
+ # minimal Rails specific artifacts
10
+ db/*.sqlite3
11
+ /log/*
12
+ tmp/*
13
+
14
+ # various artifacts
15
+ **.war
16
+ *.rbc
17
+ *.sassc
18
+ .rspec
19
+ .sass-cache
20
+ /config/config.yml
21
+ /config/database.yml
22
+ /coverage.data
23
+ /coverage/
24
+ /db/*.javadb/
25
+ /db/*.sqlite3-journal
26
+ /doc/api/
27
+ /doc/app/
28
+ /doc/features.html
29
+ /doc/specs.html
30
+ /public/cache
31
+ /public/stylesheets/compiled
32
+ /public/system
33
+ /spec/tmp/*
34
+ /cache
35
+ /capybara*
36
+ /capybara-*.html
37
+ /gems
38
+ /rerun.txt
39
+ /spec/requests
40
+ /spec/routing
41
+ /spec/views
42
+ /specifications
43
+
44
+ # scm revert files
45
+ **.orig
46
+
47
+ # Mac finder artifacts
48
+ .DS_Store
49
+
50
+ # Netbeans project directory
51
+ /nbproject/
52
+
53
+ # RubyMine project directory
54
+ .idea
55
+
56
+ # Textmate project files
57
+ /*.tmpproj
58
+
59
+ # vim artifacts
60
+ **.swp
61
+
62
+
63
+ public/uploads
64
+ non_public
65
+ uploads
66
+
67
+ # CI reports
68
+ reports
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in bigbackup.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,38 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ bigbackup (1.0.0)
5
+ activesupport
6
+ mail
7
+ rainbow
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ activesupport (3.0.7)
13
+ diff-lcs (1.1.2)
14
+ i18n (0.5.0)
15
+ mail (2.3.0)
16
+ i18n (>= 0.4.0)
17
+ mime-types (~> 1.16)
18
+ treetop (~> 1.4.8)
19
+ mime-types (1.16)
20
+ polyglot (0.3.1)
21
+ rainbow (1.1.1)
22
+ rspec (2.6.0)
23
+ rspec-core (~> 2.6.0)
24
+ rspec-expectations (~> 2.6.0)
25
+ rspec-mocks (~> 2.6.0)
26
+ rspec-core (2.6.0)
27
+ rspec-expectations (2.6.0)
28
+ diff-lcs (~> 1.1.2)
29
+ rspec-mocks (2.6.0)
30
+ treetop (1.4.9)
31
+ polyglot (>= 0.3.1)
32
+
33
+ PLATFORMS
34
+ ruby
35
+
36
+ DEPENDENCIES
37
+ bigbackup!
38
+ rspec
data/README.rdoc ADDED
@@ -0,0 +1,21 @@
1
+ = BigBackup
2
+
3
+ BigBackup is a multi backup tool.
4
+
5
+ == Install
6
+
7
+ [sudo] gem install bigbackup
8
+
9
+ == Supported Databasses
10
+
11
+ * mysql
12
+ * mongodb
13
+
14
+ == Uploader
15
+
16
+ * ftp
17
+
18
+ == Archive
19
+
20
+ * tar
21
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler'
2
+ require "rspec"
3
+ require 'rspec/core/rake_task'
4
+
5
+ Bundler::GemHelper.install_tasks
6
+ RSpec::Core::RakeTask.new(:spec)
data/bigbackup.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ require File.expand_path("../lib", __FILE__)+ "/big_backup/version"
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "bigbackup"
8
+ s.version = BigBackupInfo::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ["Alexander Klaiber"]
11
+ s.email = ["alex.klaiber@gmail.com"]
12
+ s.homepage = ""
13
+ s.summary = %q{BigBackup is a multi backup tool.}
14
+ s.description = s.summary
15
+
16
+ s.rubyforge_project = "big_backup"
17
+
18
+ s.add_development_dependency "rspec"
19
+ s.add_dependency 'activesupport'
20
+ s.add_dependency 'mail'
21
+ s.add_dependency 'rainbow'
22
+
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.require_paths = ["lib"]
27
+ end
data/bin/bigbackup.rb ADDED
@@ -0,0 +1,26 @@
1
+ require "#{File.dirname(__FILE__)}/../lib/big_backup"
2
+
3
+ require 'optparse'
4
+
5
+ OptionParser.new do |opts|
6
+ opts.banner = "Usage: big_backup.rb [@options]"
7
+
8
+ opts.on("-c", "--config [CONFIGPATH]", String, "Path to Back Config yml (default : #{BigBackup.config_path})") do |config_path|
9
+ BigBackup.config_path = config_path
10
+ end
11
+
12
+ opts.separator ""
13
+ opts.separator "Common options:"
14
+
15
+ opts.on_tail("-h", "--help", "Show this message") do
16
+ puts opts
17
+ exit
18
+ end
19
+
20
+ opts.on_tail("--version", "Show version") do
21
+ puts BigBackupInfo::VERSION
22
+ exit
23
+ end
24
+ end.parse!
25
+
26
+ BigBackup.run
@@ -0,0 +1,29 @@
1
+ tmpdir : /tmp
2
+
3
+ backup_server:
4
+ ftp:
5
+ ip: 127.0.0.1
6
+ user: user
7
+ passwd: password
8
+
9
+
10
+ directories:
11
+ - /home/aklaiber/bin
12
+
13
+ databases:
14
+ mongodb:
15
+ bonayou_development:
16
+ host: localhost
17
+ database: bonayou_development
18
+
19
+ freecent-development:
20
+ host: localhost
21
+ database: freecent-development
22
+
23
+
24
+ mysql:
25
+ comunio_de:
26
+ host: localhost
27
+ database: comunio_de
28
+ username: root
29
+ password: Ac$23hBx
data/lib/big_backup.rb ADDED
@@ -0,0 +1,39 @@
1
+ require "bundler/setup"
2
+
3
+ require 'active_support/core_ext'
4
+ require "yaml"
5
+ require 'rainbow'
6
+ require 'fileutils'
7
+
8
+ require "#{File.dirname(__FILE__)}/big_backup/base"
9
+
10
+ require "#{File.dirname(__FILE__)}/big_backup/archive"
11
+
12
+ require "#{File.dirname(__FILE__)}/big_backup/databases/base"
13
+ require "#{File.dirname(__FILE__)}/big_backup/databases/mysql"
14
+ require "#{File.dirname(__FILE__)}/big_backup/databases/mongodb"
15
+
16
+ require "#{File.dirname(__FILE__)}/big_backup/uploader/base"
17
+ require "#{File.dirname(__FILE__)}/big_backup/uploader/ftp"
18
+
19
+ module BigBackup
20
+
21
+ @@options = {}
22
+ @@options[:config_path] = "/usr/local/etc/bigbackup/bigbackup.yml"
23
+ @@options[:mail_config_path] = "/usr/local/etc/bigbackup/bigbackup_mail.yml"
24
+
25
+ def self.config_path=(config_path)
26
+ @@options[:config_path] = config_path
27
+ end
28
+
29
+ def self.config_path
30
+ @@options[:config_path]
31
+ end
32
+
33
+ def self.run
34
+ Base.new.start
35
+ end
36
+
37
+ end
38
+
39
+
@@ -0,0 +1,29 @@
1
+ module BigBackup
2
+ class Archive
3
+
4
+ def initialize(config)
5
+ @config = config
6
+ end
7
+
8
+ def build_cmd(timestamp = nil)
9
+ cmd_line = String.new
10
+ if @config.kind_of?(Array)
11
+ @config.each do |dir|
12
+ cmd_line << " && " unless cmd_line.empty?
13
+ cmd_line << "tar -czf /tmp/bigbackup/#{File.basename(dir)}.tar.gz #{dir} > /dev/null 2>&1"
14
+ end
15
+ elsif @config.kind_of?(Hash)
16
+ @config.each_key do |database_name|
17
+ cmd_line << " && " unless cmd_line.empty?
18
+ unless timestamp.blank?
19
+ cmd_line << "tar -czf /tmp/bigbackup/#{database_name}_#{timestamp}.tar.gz /tmp/bigbackup/#{database_name}_#{timestamp} > /dev/null 2>&1"
20
+ else
21
+ cmd_line << "tar -czf /tmp/bigbackup/#{database_name}.tar.gz /tmp/bigbackup/#{database_name} > /dev/null 2>&1"
22
+ end
23
+ end
24
+ end
25
+ cmd_line
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,115 @@
1
+ module BigBackup
2
+ class Base
3
+
4
+ def initialize
5
+ @current_time = Time.now.strftime("%Y.%m.%d")
6
+ end
7
+
8
+ def start_message(message)
9
+ puts "\nStart".bright+" -> #{message}"
10
+ end
11
+
12
+ def ok_message(message)
13
+ puts "OK".color(:green).bright+" -> #{message}"
14
+ end
15
+
16
+ def error_message(message)
17
+ puts "ERROR".color(:red).bright+" -> #{message}"
18
+ end
19
+
20
+ def exec_cmd(line)
21
+ system(line)
22
+ if $?.exitstatus > 0
23
+ error_message(line)
24
+ else
25
+ ok_message(line)
26
+ end
27
+ end
28
+
29
+ def backup_config
30
+ if File.exists?(BigBackup.config_path)
31
+ @backup_config ||= YAML.load_file(BigBackup.config_path)
32
+ else
33
+ @backup_config ||= YAML.load_file("#{File.dirname(__FILE__)}/../../config/bigbackup.yml")
34
+ end
35
+ end
36
+
37
+ def backup_databases
38
+ puts "\nCreate Backups".bright.color(:cyan)
39
+ self.backup_config['databases'].each do |type, config|
40
+ cmd_line = BigBackup::Database::Base.build(type, config).build_cmd(@current_time)
41
+ unless cmd_line.blank?
42
+ start_message(cmd_line)
43
+ exec_cmd(cmd_line)
44
+ end
45
+ end
46
+ end
47
+
48
+ def archive_databases
49
+ puts "\nArchive Backups".bright.color(:cyan)
50
+ self.backup_config['databases'].each do |type, config|
51
+ cmd_line = BigBackup::Archive.new(config).build_cmd(@current_time) + " > /dev/null 2>&1"
52
+ unless cmd_line.blank?
53
+ start_message(cmd_line)
54
+ exec_cmd(cmd_line)
55
+ end
56
+ end
57
+ end
58
+
59
+ def upload_databases
60
+ if self.backup_config.include?('backup_server')
61
+ puts "\nUpload Backups".bright.color(:cyan)
62
+ self.backup_config['databases'].each do |type, config|
63
+ start_message("upload #{type} backups")
64
+ begin
65
+ BigBackup::Uploader::Base.build(:ftp, config).upload(type, @current_time)
66
+ ok_message("database backups uploaded")
67
+ rescue Errno::ECONNREFUSED
68
+ error_message("Can't connect to FTP Server")
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ def archive_directories
75
+ puts "\nCreate directories backups".bright.color(:cyan)
76
+ cmd_line = BigBackup::Archive.new(self.backup_config['directories']).build_cmd + " > /dev/null 2>&1"
77
+ unless cmd_line.blank?
78
+ start_message(cmd_line)
79
+ exec_cmd(cmd_line)
80
+ end
81
+ end
82
+
83
+ def upload_directories
84
+ if self.backup_config.include?('backup_server')
85
+ puts "\nUpload directories Backups".bright.color(:cyan)
86
+ start_message("upload directorie backups")
87
+ begin
88
+ BigBackup::Uploader::Base.build(:ftp, self.backup_config['directories']).upload("directories_backup", @current_time)
89
+ ok_message("directories uploaded")
90
+ rescue Errno::ECONNREFUSED
91
+ error_message("Can't connect to FTP Server")
92
+ end
93
+ end
94
+ end
95
+
96
+ def start
97
+ FileUtils.rm_rf "/tmp/bigbackup"
98
+ Dir.mkdir "/tmp/bigbackup"
99
+ if File.directory?("/tmp/bigbackup")
100
+ puts "\nStart BigBackup \n".color(:green).bright
101
+ if self.backup_config.include?('databases')
102
+ self.backup_databases
103
+ self.archive_databases
104
+ self.upload_databases
105
+ end
106
+ if self.backup_config.include?('directories')
107
+ self.archive_directories
108
+ self.upload_directories
109
+ end
110
+ puts "\nStop BigBackup \n".color(:green).bright
111
+ end
112
+ end
113
+
114
+ end
115
+ end
@@ -0,0 +1,59 @@
1
+ module BigBackup
2
+ module Database
3
+ class Base
4
+
5
+ def initialize(config)
6
+ @config = config
7
+ end
8
+
9
+ def self.build(type, config)
10
+ "BigBackup::Database::#{type.to_s.classify}".constantize.new(config)
11
+ end
12
+
13
+ protected
14
+
15
+ def database_system
16
+ raise "Please define the database system"
17
+ end
18
+
19
+ def cmd_options
20
+ raise "Please define the cmd options"
21
+ end
22
+
23
+ def cmd_line(backup_name, database_config, timestamp)
24
+ raise "Please define the cmd line"
25
+ end
26
+
27
+ public
28
+
29
+ def build_cmd(timestamp)
30
+ str = String.new
31
+ @config.each do |database, config|
32
+ str << " && " unless str.empty?
33
+ str << self.cmd_line(database, config, timestamp)
34
+ end
35
+ str;
36
+ end
37
+
38
+ private
39
+
40
+ def build_cmd_options(database_config)
41
+ options_line = String.new
42
+ database_config.each do |key, value|
43
+ if self.cmd_options.include?(key)
44
+ case key
45
+ when 'password'
46
+ options_line << "#{self.cmd_options[key]}'#{value}' "
47
+ when 'username'
48
+ options_line << "#{self.cmd_options[key]} #{value} "
49
+ else
50
+ options_line << "#{self.cmd_options[key]} #{value} "
51
+ end
52
+ end
53
+ end
54
+ options_line
55
+ end
56
+
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,30 @@
1
+ module BigBackup
2
+ module Database
3
+ class Mongodb < Base
4
+
5
+ protected
6
+
7
+ def database_system
8
+ "mongodb"
9
+ end
10
+
11
+ def cmd_options
12
+ cmd_options = {}
13
+ cmd_options["host"] = '-h'
14
+ cmd_options["database"] = '-d'
15
+ cmd_options["password"] = '-p'
16
+ cmd_options["username"] = '-u'
17
+ return cmd_options
18
+ end
19
+
20
+ def cmd_line(backup_name, database_config, filename)
21
+ "mongodump #{build_cmd_options(database_config)}-o /tmp/bigbackup/#{backup_name}_#{filename} > /dev/null 2>&1"
22
+ end
23
+
24
+ def backup_dir
25
+ "mongodb"
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,29 @@
1
+ module BigBackup
2
+ module Database
3
+ class Mysql < Base
4
+
5
+ protected
6
+
7
+ def database_system
8
+ "mysql"
9
+ end
10
+
11
+ def cmd_options
12
+ cmd_options = {}
13
+ cmd_options["host"] = '-h'
14
+ cmd_options["password"] = '-p'
15
+ cmd_options["username"] = '-u'
16
+ return cmd_options
17
+ end
18
+
19
+ def cmd_line(backup_name, database_config, timestamp)
20
+ "mysqldump #{database_config['database']} #{build_cmd_options(database_config)}> /tmp/bigbackup/#{backup_name}_#{timestamp}"
21
+ end
22
+
23
+ def backup_dir
24
+ "mysql"
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ require "net/ftp"
2
+
3
+ module BigBackup
4
+ module Uploader
5
+ class Base
6
+ def initialize(config)
7
+ @config = config
8
+ end
9
+
10
+ def self.build(type, config)
11
+ "BigBackup::Uploader::#{type.to_s.classify}".constantize.new(config)
12
+ end
13
+
14
+ def uploader_config
15
+ if File.exists?(BigBackup.config_path)
16
+ @backup_config ||= YAML.load_file(BigBackup.config_path)['backup_server']
17
+ else
18
+ @backup_config ||= YAML.load_file("#{File.dirname(__FILE__)}/../../../config/bigbackup.yml")['backup_server']
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ module BigBackup
2
+ module Uploader
3
+ class Ftp < Base
4
+
5
+ def initialize(config)
6
+ super(config)
7
+ @ftp_config = self.uploader_config['ftp']
8
+ end
9
+
10
+ def upload(backup_dir, timestamp)
11
+ Net::FTP.open(@ftp_config["ip"]) do |connection|
12
+ connection.login(@ftp_config["user"].to_s, @ftp_config["passwd"])
13
+
14
+ if @config.kind_of?(Array)
15
+ @config.each do |dir|
16
+ connection.put("/tmp/bigbackup/#{File.basename(dir)}.tar.gz", "#{backup_dir}/#{File.basename(dir)}.tar.gz")
17
+ end
18
+ elsif @config.kind_of?(Hash)
19
+ @config.each_key do |database_name|
20
+ connection.put("/tmp/bigbackup/#{database_name}_#{timestamp}.tar.gz", "#{backup_dir}/#{database_name}_#{timestamp}.tar.gz")
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,3 @@
1
+ module BigBackupInfo
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Archive do
4
+
5
+ before(:all) do
6
+ @backup_config = YAML.load_file("#{File.dirname(__FILE__)}/../../config/bigbackup.yml")
7
+ end
8
+
9
+ it "should return cmd line for directories" do
10
+ cmd_line = "tar -czf /tmp/test_backup1.tar.gz /tmp/test_backup1 && tar -czf /tmp/test_backup2.tar.gz /tmp/test_backup2"
11
+
12
+ BigBackup::Archive.new(@backup_config['directories']).build_cmd.should eql(cmd_line)
13
+ end
14
+
15
+ it "should return cmd line for databases" do
16
+ cmd_line = "tar -czf /tmp/mongodb_database_name_1.tar.gz /tmp/mongodb_database_name_1 && tar -czf /tmp/mongodb_database_name_2.tar.gz /tmp/mongodb_database_name_2"
17
+
18
+ BigBackup::Archive.new(@backup_config['databases']['mongodb']).build_cmd.should eql(cmd_line)
19
+ end
20
+
21
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Base do
4
+
5
+ describe "config" do
6
+
7
+ it "should load backup config" do
8
+ big_backup = BigBackup::Base.new
9
+
10
+ big_backup.backup_config["tmpdir"].should_not be_empty
11
+ big_backup.backup_config["tmpdir"].should eql("/tmp")
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Database::Base do
4
+
5
+ before(:each) do
6
+ @backup_config = YAML.load_file( "#{File.dirname(__FILE__)}/../../../config/bigbackup.yml" )
7
+ end
8
+
9
+ it "should return backup system" do
10
+ BigBackup::Database::Base.build(:mysql, @backup_config).class.should eql(BigBackup::Database::Mysql)
11
+ BigBackup::Database::Base.build(:mongodb, @backup_config).class.should eql(BigBackup::Database::Mongodb)
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Database::Mongodb do
4
+
5
+ before(:each) do
6
+ @backup_config = YAML.load_file( "#{File.dirname(__FILE__)}/../../../config/bigbackup.yml" )['databases']['mongodb']
7
+ @cmd_line = "mongodump -d mongodb_database_1 -h localhost -u testuser -p'password' -o /tmp/mongodb_database_name_1_backup && mongodump -d mongodb_database_2 -h localhost -o /tmp/mongodb_database_name_2_backup"
8
+ end
9
+
10
+ it "should return cmd str" do
11
+ BigBackup::Database::Mongodb.new(@backup_config).build_cmd("backup").should eql(@cmd_line)
12
+ end
13
+
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Database::Mysql do
4
+
5
+ before(:each) do
6
+ @backup_config = YAML.load_file( "#{File.dirname(__FILE__)}/../../../config/bigbackup.yml" )['databases']['mysql']
7
+ @cmd_line = "mysqldump mysql_database_1 -h localhost -u username -p'password' > /tmp/mysql_database_name_1_123.sql && mysqldump mysql_database_2 -h localhost -u username -p'password' > /tmp/mysql_database_name_2_123.sql"
8
+ end
9
+
10
+ it "should return cmd str" do
11
+ BigBackup::Database::Mysql.new(@backup_config).build_cmd(123).should eql(@cmd_line)
12
+ end
13
+
14
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ describe BigBackup::Uploader::Ftp do
4
+
5
+ before(:all) do
6
+ @backup_config = YAML.load_file("#{File.dirname(__FILE__)}/../../config/bigbackup.yml")
7
+ end
8
+
9
+ end
@@ -0,0 +1,11 @@
1
+ $:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
2
+
3
+ require 'rspec'
4
+ require 'big_backup'
5
+
6
+ RSpec.configure do |config|
7
+
8
+ end
9
+
10
+
11
+
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bigbackup
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alexander Klaiber
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-05-20 00:00:00.000000000 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: &85993850 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *85993850
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: &85993640 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *85993640
37
+ - !ruby/object:Gem::Dependency
38
+ name: mail
39
+ requirement: &85993430 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *85993430
48
+ - !ruby/object:Gem::Dependency
49
+ name: rainbow
50
+ requirement: &85993220 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *85993220
59
+ description: BigBackup is a multi backup tool.
60
+ email:
61
+ - alex.klaiber@gmail.com
62
+ executables:
63
+ - bigbackup.rb
64
+ extensions: []
65
+ extra_rdoc_files: []
66
+ files:
67
+ - .gitignore
68
+ - .rvmrc
69
+ - Gemfile
70
+ - Gemfile.lock
71
+ - README.rdoc
72
+ - Rakefile
73
+ - bigbackup.gemspec
74
+ - bin/bigbackup.rb
75
+ - config/bigbackup.yml
76
+ - lib/big_backup.rb
77
+ - lib/big_backup/archive.rb
78
+ - lib/big_backup/base.rb
79
+ - lib/big_backup/databases/base.rb
80
+ - lib/big_backup/databases/mongodb.rb
81
+ - lib/big_backup/databases/mysql.rb
82
+ - lib/big_backup/uploader/base.rb
83
+ - lib/big_backup/uploader/ftp.rb
84
+ - lib/big_backup/version.rb
85
+ - spec/lib/archive_spec.rb
86
+ - spec/lib/base_spec.rb
87
+ - spec/lib/databases/base_spec.rb
88
+ - spec/lib/databases/mongodb_spec.rb
89
+ - spec/lib/databases/mysql_spec.rb
90
+ - spec/lib/uploader/ftp_spec.rb
91
+ - spec/spec_helper.rb
92
+ has_rdoc: true
93
+ homepage: ''
94
+ licenses: []
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project: big_backup
113
+ rubygems_version: 1.6.2
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: BigBackup is a multi backup tool.
117
+ test_files: []