simple_backup 0.4.0 → 0.4.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.
- checksums.yaml +4 -4
- data/backup_example.rb +12 -10
- data/lib/simple_backup/source/abstract.rb +23 -4
- data/lib/simple_backup/sources.rb +10 -0
- data/lib/simple_backup/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c6501e16071df57faa608b6f7a1d9b39de67286
|
4
|
+
data.tar.gz: 7b34e18d1444980aa6e45573e11f4323231dea09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a44d236089f3f903b5e8463f0b7a588bb596d94d9d460376a69581aa3140170bef4377aa0010f4d13d012c4e80ea80524c7d35f8b95ff8d7526f44416cdf07e9
|
7
|
+
data.tar.gz: a41711c5c5d4cf7a3da7191a3e5767d01bdb18efe18435b394f45678380be6c05fcde25b327d4ae65cfc933d4fddac5a8cd7ae35ab8778be1f7e5330d1c7100e
|
data/backup_example.rb
CHANGED
@@ -15,7 +15,18 @@ SimpleBackup.define do
|
|
15
15
|
|
16
16
|
default_keep_last 9
|
17
17
|
|
18
|
+
mailer do
|
19
|
+
subject_prefix '[BACKUP]'
|
20
|
+
|
21
|
+
from 'backup@localhost'
|
22
|
+
to 'root@localhost'
|
23
|
+
cc 'rb@localhost'
|
24
|
+
bcc 'root@localhost'
|
25
|
+
end
|
26
|
+
|
18
27
|
sources do
|
28
|
+
# tmp_dir '/tmp/tmp'
|
29
|
+
|
19
30
|
dir 'app-1', path: '/home/app/app-1', type: :capistrano, backends: 'backup'
|
20
31
|
dir 'app-2', path: '/home/app/app-2', backends: :none
|
21
32
|
dir 'none', path: '/none'
|
@@ -28,7 +39,7 @@ SimpleBackup.define do
|
|
28
39
|
end
|
29
40
|
|
30
41
|
backends do
|
31
|
-
local 'backup', path: '/
|
42
|
+
local 'backup', path: '/tmp/backup'
|
32
43
|
end
|
33
44
|
|
34
45
|
mysql do
|
@@ -37,13 +48,4 @@ SimpleBackup.define do
|
|
37
48
|
user 'root'
|
38
49
|
pass 'root'
|
39
50
|
end
|
40
|
-
|
41
|
-
mailer do
|
42
|
-
subject_prefix '[BACKUP]'
|
43
|
-
|
44
|
-
from 'backup@localhost'
|
45
|
-
to 'root@localhost'
|
46
|
-
cc 'rb@localhost'
|
47
|
-
bcc 'root@localhost'
|
48
|
-
end
|
49
51
|
end
|
@@ -1,4 +1,6 @@
|
|
1
|
+
require 'fileutils'
|
1
2
|
require 'rubygems/package'
|
3
|
+
require 'securerandom'
|
2
4
|
require 'tmpdir'
|
3
5
|
require 'zlib'
|
4
6
|
|
@@ -6,6 +8,7 @@ module SimpleBackup
|
|
6
8
|
module Source
|
7
9
|
class Abstract
|
8
10
|
@@logger = Utils::Logger.instance
|
11
|
+
@tmp_base_path = nil
|
9
12
|
|
10
13
|
def configure(options = {})
|
11
14
|
raise NotImplementedError
|
@@ -27,6 +30,10 @@ module SimpleBackup
|
|
27
30
|
@name
|
28
31
|
end
|
29
32
|
|
33
|
+
def tmp_base_path=(value)
|
34
|
+
@tmp_base_path = value
|
35
|
+
end
|
36
|
+
|
30
37
|
def type
|
31
38
|
self.class.name.split('::').last.gsub(/[^a-zA-Z0-9\-\_\. ]*/, '').gsub(/\s+/, '_').downcase
|
32
39
|
end
|
@@ -40,9 +47,7 @@ module SimpleBackup
|
|
40
47
|
|
41
48
|
@@logger.scope_start :info, "Getting archive for: #{desc}"
|
42
49
|
|
43
|
-
|
44
|
-
@@logger.debug "Created tmp directory #{@tmp_dir}"
|
45
|
-
|
50
|
+
prepare_tmp_dir
|
46
51
|
data_exists = prepare_data
|
47
52
|
|
48
53
|
@@logger.warning "No data for: #{desc}" unless data_exists
|
@@ -87,7 +92,7 @@ module SimpleBackup
|
|
87
92
|
|
88
93
|
def archive_data
|
89
94
|
filename = "#{type}-#{name}.#{SimpleBackup::TIMESTAMP}.tar.gz"
|
90
|
-
@backup_file = ::File.join(
|
95
|
+
@backup_file = ::File.join(get_tmp, filename)
|
91
96
|
|
92
97
|
::File.open(backup_file, 'w') do |f|
|
93
98
|
f.write targz.string
|
@@ -96,6 +101,20 @@ module SimpleBackup
|
|
96
101
|
@@logger.debug "Backup saved to temporary file #{backup_file}"
|
97
102
|
end
|
98
103
|
|
104
|
+
def prepare_tmp_dir
|
105
|
+
@tmp_dir = ::File.join(get_tmp, "simple_backup-#{SimpleBackup::TIMESTAMP}-#{SecureRandom.uuid}")
|
106
|
+
FileUtils.mkdir_p @tmp_dir, mode: 0700
|
107
|
+
|
108
|
+
@@logger.debug "Created tmp directory #{@tmp_dir}"
|
109
|
+
end
|
110
|
+
|
111
|
+
def get_tmp
|
112
|
+
tmp = @tmp_base_path
|
113
|
+
tmp = ::Dir.tmpdir unless tmp
|
114
|
+
|
115
|
+
tmp
|
116
|
+
end
|
117
|
+
|
99
118
|
def targz
|
100
119
|
path = @tmp_dir
|
101
120
|
|
@@ -6,6 +6,7 @@ module SimpleBackup
|
|
6
6
|
include Singleton
|
7
7
|
|
8
8
|
@@logger = Utils::Logger.instance
|
9
|
+
@tmp_dir = nil
|
9
10
|
|
10
11
|
def initialize
|
11
12
|
@sources = {}
|
@@ -16,6 +17,14 @@ module SimpleBackup
|
|
16
17
|
@default_keep_last = value
|
17
18
|
end
|
18
19
|
|
20
|
+
def tmp_dir(path)
|
21
|
+
raise "Temporary path '#{path}' does not exists" unless ::File.exist?(path)
|
22
|
+
raise "Temporary path '#{path}' is not a directory" unless ::File.directory?(path)
|
23
|
+
raise "Temporary path '#{path}' is not writable" unless ::File.writable?(path)
|
24
|
+
@tmp_dir = path
|
25
|
+
@@logger.info "Replaced temporary path to '#{@tmp_dir}'"
|
26
|
+
end
|
27
|
+
|
19
28
|
def each(&block)
|
20
29
|
@sources.each do |type, sources|
|
21
30
|
sources.each(&block)
|
@@ -52,6 +61,7 @@ module SimpleBackup
|
|
52
61
|
source.keep_last = @default_keep_last
|
53
62
|
source.keep_last = options[:keep_last] if options[:keep_last]
|
54
63
|
source.backends = options[:backends] if options[:backends]
|
64
|
+
source.tmp_base_path = @tmp_dir if @tmp_dir
|
55
65
|
source.name = name
|
56
66
|
|
57
67
|
source.configure(options)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Maczukin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|