backup-agent 1.0.4 → 1.0.5
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/README.md +9 -5
- data/backup-agent.gemspec +2 -2
- data/lib/backup-agent/performer.rb +12 -12
- data/lib/backup-agent/task.rb +18 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be2dcc5ee70e3711b9dfd5e905776d023f2e28d3
|
4
|
+
data.tar.gz: ac8b7d26bd2dceb1aea1f0536ee6c7f6d11956bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9d4afa1c3752e3caf77422e07ba7b12a6e4e542841890e753e9cb11522ac344c638075d25255125ad57cbf40f0f1fdab47e050f2961d578a672bee415217eb5
|
7
|
+
data.tar.gz: 77a42e5999e6136bb30d6a94248130d70db236156559622ef120eacab0054504a1afdc3ef7a9e8268148da92dfd4a377ddcb1d128e057de95489d0ee5d1b2b79
|
data/README.md
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
```ruby
|
2
|
-
|
2
|
+
require 'backup-agent'
|
3
|
+
|
4
|
+
storage_config = Backup::S3Config.new do
|
3
5
|
set :access_key_id, 'xxx'
|
4
6
|
set :secret_access_key, 'yyy'
|
5
7
|
set :region, 'eu-central-1'
|
6
8
|
end
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
+
storage = Backup::S3Storage.new(storage_config, bucket: 'my-backups')
|
11
|
+
|
12
|
+
Backup.perform storage do
|
13
|
+
set :mysql_host, 'xxx.yyy.xxx.yyy'
|
10
14
|
end
|
11
15
|
```
|
12
16
|
|
13
17
|
## Gemfile
|
14
18
|
```ruby
|
15
|
-
gem 'backup-agent'
|
16
|
-
```
|
19
|
+
gem 'backup-agent'
|
20
|
+
```
|
data/backup-agent.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'backup-agent'
|
5
|
-
s.version = '1.0.
|
5
|
+
s.version = '1.0.5'
|
6
6
|
s.authors = ['Yaroslav Konoplov']
|
7
7
|
s.email = ['yaroslav@inbox.com']
|
8
8
|
s.summary = 'Easy AWS S3 backup'
|
@@ -18,4 +18,4 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency 'aws-sdk'
|
19
19
|
s.add_dependency 'confo-config', '>= 1.0.0'
|
20
20
|
s.add_dependency 'activesupport', '>= 3.2.0'
|
21
|
-
end
|
21
|
+
end
|
@@ -23,9 +23,9 @@ module Backup
|
|
23
23
|
|
24
24
|
def backup_directories
|
25
25
|
config.get(:directories).each do |name, dir|
|
26
|
-
dir_filename = "#{name}.tar.
|
26
|
+
dir_filename = "#{name}.tar.xz"
|
27
27
|
dir_fileparam = Shellwords.escape(dir_filename)
|
28
|
-
cmd = "cd #{dir} && /usr/bin/env tar -
|
28
|
+
cmd = "cd #{dir} && /usr/bin/env XZ_OPT=-9 tar -cJvf #{tmp_path}/#{dir_fileparam} ."
|
29
29
|
puts "Exec #{cmd}"
|
30
30
|
system(cmd)
|
31
31
|
storage.upload("#{@timestamp}/#{dir_filename}", "#{tmp_path}/#{dir_filename}")
|
@@ -36,13 +36,13 @@ module Backup
|
|
36
36
|
config.get(:files).each do |name, files|
|
37
37
|
begin
|
38
38
|
files_tmp_path = File.join(tmp_path, "#{name}-tmp")
|
39
|
-
file_bunch_name = "#{name}.tar.
|
39
|
+
file_bunch_name = "#{name}.tar.xz"
|
40
40
|
file_bunch_param = Shellwords.escape(file_bunch_name)
|
41
41
|
|
42
42
|
FileUtils.mkdir_p(files_tmp_path)
|
43
43
|
FileUtils.cp(files.select { |el| File.exists?(el) }, files_tmp_path)
|
44
44
|
|
45
|
-
cmd = "cd #{files_tmp_path} && /usr/bin/env tar -
|
45
|
+
cmd = "cd #{files_tmp_path} && /usr/bin/env XZ_OPT=-9 tar -cJvf #{tmp_path}/#{file_bunch_param} ."
|
46
46
|
system(cmd)
|
47
47
|
|
48
48
|
storage.upload("#{@timestamp}/#{file_bunch_name}", "#{tmp_path}/#{file_bunch_name}")
|
@@ -54,13 +54,13 @@ module Backup
|
|
54
54
|
|
55
55
|
def backup_mysql
|
56
56
|
config.get(:mysql_databases).each do |db|
|
57
|
-
db_filename = "MySQL Database #{db}.
|
57
|
+
db_filename = "MySQL Database #{db}.xz"
|
58
58
|
db_fileparam = Shellwords.escape(db_filename)
|
59
|
-
dump = with_env "mysqldump #{config.get(:mysql_connect)} #{config.get(:mysqldump_options).join(' ')} #{db}"
|
60
|
-
|
59
|
+
dump = with_env "mysqldump #{config.get(:mysql_connect)} #{config.get(:mysqldump_options).join(' ')} --databases #{db}"
|
60
|
+
xz = with_env "xz --compress --extreme -9 --keep --threads=0 --verbose"
|
61
61
|
|
62
|
-
puts "Exec #{dump} | #{
|
63
|
-
system "#{dump} | #{
|
62
|
+
puts "Exec #{dump} | #{xz} > #{tmp_path}/#{db_fileparam} "
|
63
|
+
system "#{dump} | #{xz} > #{tmp_path}/#{db_fileparam}"
|
64
64
|
|
65
65
|
storage.upload("#{@timestamp}/#{db_filename}", "#{tmp_path}/#{db_filename}")
|
66
66
|
end
|
@@ -71,11 +71,11 @@ module Backup
|
|
71
71
|
FileUtils.mkdir_p(mongo_dump_dir)
|
72
72
|
|
73
73
|
config.get(:mongo_databases).each do |db|
|
74
|
-
db_filename = "Mongo Database #{db}.tar.
|
74
|
+
db_filename = "Mongo Database #{db}.tar.xz"
|
75
75
|
db_fileparam = Shellwords.escape(db_filename)
|
76
76
|
dump = with_env "mongodump #{config.get(:mongo_connect)} -d #{db} -o #{mongo_dump_dir}"
|
77
77
|
cd = "cd #{mongo_dump_dir}/#{db}"
|
78
|
-
tar = with_env "tar -
|
78
|
+
tar = with_env "XZ_OPT=-9 tar -cJvf #{tmp_path}/#{db_fileparam} ."
|
79
79
|
|
80
80
|
puts "Exec #{dump} && #{cd} && #{tar}"
|
81
81
|
system "#{dump} && #{cd} && #{tar}"
|
@@ -109,4 +109,4 @@ module Backup
|
|
109
109
|
"/usr/bin/env #{cmd}"
|
110
110
|
end
|
111
111
|
end
|
112
|
-
end
|
112
|
+
end
|
data/lib/backup-agent/task.rb
CHANGED
@@ -11,18 +11,31 @@ module Backup
|
|
11
11
|
end
|
12
12
|
|
13
13
|
set :mysqldump_options, %w(
|
14
|
-
--
|
14
|
+
--add-drop-database
|
15
15
|
--add-drop-table
|
16
16
|
--add-locks
|
17
|
+
--allow-keywords
|
18
|
+
--comments
|
19
|
+
--complete-insert
|
17
20
|
--create-options
|
18
|
-
--
|
21
|
+
--debug-check
|
22
|
+
--debug-info
|
19
23
|
--extended-insert
|
20
|
-
--
|
24
|
+
--flush-privileges
|
25
|
+
--insert-ignore
|
26
|
+
--lock-tables
|
27
|
+
--quick
|
28
|
+
--quote-names
|
29
|
+
--set-charset
|
30
|
+
--dump-date
|
31
|
+
--secure-auth
|
32
|
+
--tz-utc
|
33
|
+
--disable-keys )
|
21
34
|
|
22
35
|
set :mysql_connect, -> do
|
23
36
|
pass = get(:mysql_password)
|
24
37
|
pass_param = pass && !pass.empty? ? "-p#{pass}" : ''
|
25
|
-
"
|
38
|
+
"--user #{get(:mysql_user)} --password=#{pass_param} --host=#{get(:mysql_host)}"
|
26
39
|
end
|
27
40
|
|
28
41
|
set :mongo_databases, -> do
|
@@ -50,4 +63,4 @@ module Backup
|
|
50
63
|
super
|
51
64
|
end
|
52
65
|
end
|
53
|
-
end
|
66
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yaroslav Konoplov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
version: '0'
|
96
96
|
requirements: []
|
97
97
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.
|
98
|
+
rubygems_version: 2.5.1
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: Easy AWS S3 backup
|