backup 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +5 -0
- data/VERSION +1 -1
- data/backup.gemspec +2 -2
- data/generators/backup_files/templates/db.rake +31 -18
- data/lib/backup/backup_record/s3.rb +2 -3
- data/lib/backup/backup_record/ssh.rb +13 -1
- data/lib/backup/connection/s3.rb +2 -0
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -85,6 +85,11 @@ http://wiki.github.com/meskyanichi/backup/requirements
|
|
85
85
|
http://wiki.github.com/meskyanichi/backup/automatic-backups
|
86
86
|
|
87
87
|
|
88
|
+
=== Capistrano Recipes
|
89
|
+
|
90
|
+
http://wiki.github.com/meskyanichi/backup/capistrano-recipes
|
91
|
+
|
92
|
+
|
88
93
|
=== Resources
|
89
94
|
|
90
95
|
http://wiki.github.com/meskyanichi/backup/resources
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.1
|
data/backup.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{backup}
|
8
|
-
s.version = "1.2.
|
8
|
+
s.version = "1.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["meskyanichi"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-09}
|
13
13
|
s.description = %q{
|
14
14
|
“Backup” is a RubyGem, written for Ruby on Rails. It's main purpose is to Backup any
|
15
15
|
files to Amazon S3 or any remotely accessible server through SSH (SCP). It supports database
|
@@ -1,13 +1,6 @@
|
|
1
1
|
namespace :backup do
|
2
2
|
namespace :db do
|
3
3
|
namespace :truncate do
|
4
|
-
|
5
|
-
desc 'Truncates all the Backup database records; Physical files WILL NOT be deleted.'
|
6
|
-
task :all => :environment do
|
7
|
-
puts "Truncating All!"
|
8
|
-
Backup::BackupRecord::S3.destroy_all
|
9
|
-
Backup::BackupRecord::SSH.destroy_all
|
10
|
-
end
|
11
4
|
|
12
5
|
desc 'Truncates the S3 Backup database records; Physical files WILL NOT be deleted from S3.'
|
13
6
|
task :s3 => :environment do
|
@@ -23,27 +16,47 @@ namespace :backup do
|
|
23
16
|
|
24
17
|
end
|
25
18
|
|
26
|
-
|
19
|
+
|
27
20
|
namespace :destroy do
|
28
21
|
|
29
|
-
desc 'Destroys all Backup database records; Physical files WILL be deleted as well.'
|
30
|
-
task :all => :environment do
|
31
|
-
Backup::BackupRecord::S3.destroy_all_backups
|
32
|
-
Backup::BackupRecord::SSH.destroy_all_backups
|
33
|
-
end
|
34
|
-
|
35
22
|
desc 'Destroys S3 Backup database records; Physical files WILL be deleted as well.'
|
36
23
|
task :s3 => :s3_config do
|
37
|
-
|
24
|
+
puts "Removing all backups from S3.."
|
25
|
+
['mysql', 'sqlite3', 'assets', 'custom'].each do |adapter|
|
26
|
+
if @config[adapter]
|
27
|
+
unless @config[adapter].is_a?(Array)
|
28
|
+
puts "\n\n-- Processing #{adapter} backups.. --"
|
29
|
+
Backup::BackupRecord::S3.destroy_all_backups(adapter, @config[adapter])
|
30
|
+
else
|
31
|
+
puts "\n\n-- Processing #{adapter} backups.. --"
|
32
|
+
@config[adapter].each do |config|
|
33
|
+
Backup::BackupRecord::S3.destroy_all_backups(adapter, config)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
puts "\n\nAll S3 backups destroyed!"
|
38
39
|
end
|
39
40
|
|
40
41
|
desc 'Destroys SSH Backup database records; Physical files WILL be deleted as well.'
|
41
42
|
task :ssh => :ssh_config do
|
42
|
-
|
43
|
+
puts "Removing all backups from remote server through SSH.."
|
44
|
+
['mysql', 'sqlite3', 'assets', 'custom'].each do |adapter|
|
45
|
+
if @config[adapter]
|
46
|
+
unless @config[adapter].is_a?(Array)
|
47
|
+
puts "\n\n-- Processing #{adapter} backups.. --"
|
48
|
+
Backup::BackupRecord::SSH.destroy_all_backups(adapter, @config[adapter])
|
49
|
+
else
|
50
|
+
puts "\n\n-- Processing #{adapter} backups.. --"
|
51
|
+
@config[adapter].each do |config|
|
52
|
+
Backup::BackupRecord::SSH.destroy_all_backups(adapter, config)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
puts "All backups from remote server destroyed!"
|
43
58
|
end
|
44
59
|
|
45
60
|
end
|
46
|
-
=end
|
47
|
-
|
48
61
|
end
|
49
62
|
end
|
@@ -32,16 +32,15 @@ module Backup
|
|
32
32
|
self.adapter = options[:adapter]
|
33
33
|
end
|
34
34
|
|
35
|
-
def self.destroy_all_backups(options)
|
35
|
+
def self.destroy_all_backups(adapter, options)
|
36
36
|
s3 = Backup::Connection::S3.new(options)
|
37
37
|
s3.connect
|
38
|
-
backups = Backup::BackupRecord::S3.all
|
38
|
+
backups = Backup::BackupRecord::S3.all(:conditions => {:adapter => adapter})
|
39
39
|
backups.each do |backup|
|
40
40
|
puts "Destroying backup: #{backup.backup_file}.."
|
41
41
|
s3.destroy(backup.backup_file, backup.bucket)
|
42
42
|
backup.destroy
|
43
43
|
end
|
44
|
-
puts "All S3 Backups Destroyed!"
|
45
44
|
end
|
46
45
|
|
47
46
|
private
|
@@ -34,6 +34,18 @@ module Backup
|
|
34
34
|
self.user = options[:ssh][:user]
|
35
35
|
end
|
36
36
|
|
37
|
+
def self.destroy_all_backups(adapter, options)
|
38
|
+
backups = Backup::BackupRecord::SSH.all(:conditions => {:adapter => adapter})
|
39
|
+
Net::SSH.start(options['ssh']['ip'], options['ssh']['user']) do |ssh|
|
40
|
+
# Loop through all backups that should be destroyed and remove them from remote server.
|
41
|
+
backups.each do |backup|
|
42
|
+
puts "Destroying old backup: #{backup.backup_file}.."
|
43
|
+
ssh.exec("rm #{File.join(backup.backup_path, backup.backup_file)}")
|
44
|
+
backup.destroy
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
37
49
|
private
|
38
50
|
|
39
51
|
# Destroys backups when the backup limit has been reached
|
@@ -52,7 +64,7 @@ module Backup
|
|
52
64
|
if backups_to_destroy
|
53
65
|
# Establish a connection with the remote server through SSH
|
54
66
|
Net::SSH.start(ip, user) do |ssh|
|
55
|
-
# Loop through all backups that should be destroyed and remove them from
|
67
|
+
# Loop through all backups that should be destroyed and remove them from remote server.
|
56
68
|
backups_to_destroy.each do |backup|
|
57
69
|
puts "Destroying old backup: #{backup.backup_file}.."
|
58
70
|
ssh.exec("rm #{File.join(backup.backup_path, backup.backup_file)}")
|
data/lib/backup/connection/s3.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- meskyanichi
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-09 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|