backup-agent 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|