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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 06f6b0d08ef1de7d44100c07d70c771e814c97f0
4
- data.tar.gz: 07dbe4c7ac9ab53a7b6c16a4d4306245ac7084fc
3
+ metadata.gz: be2dcc5ee70e3711b9dfd5e905776d023f2e28d3
4
+ data.tar.gz: ac8b7d26bd2dceb1aea1f0536ee6c7f6d11956bc
5
5
  SHA512:
6
- metadata.gz: 12bdc01e7554ff09f023a79dd1c2b437ac6857a131cae31672bf8a9ddd4392c5c8bd4a990b1b1df09b338b9f54610926fe84aa2cf7ee24ad014ee015d7f09d88
7
- data.tar.gz: fd97c71c2ae652e56f25f24f568791c9eeebd02f7e9060373897e1ebd771a31179bfc6cc19ceb534539d29d3fca24c1c5fe2977a32a617df0292964dd01f1880
6
+ metadata.gz: f9d4afa1c3752e3caf77422e07ba7b12a6e4e542841890e753e9cb11522ac344c638075d25255125ad57cbf40f0f1fdab47e050f2961d578a672bee415217eb5
7
+ data.tar.gz: 77a42e5999e6136bb30d6a94248130d70db236156559622ef120eacab0054504a1afdc3ef7a9e8268148da92dfd4a377ddcb1d128e057de95489d0ee5d1b2b79
data/README.md CHANGED
@@ -1,16 +1,20 @@
1
1
  ```ruby
2
- BackupAgent.configure_s3 do
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
- BackupAgent.perform_backup do
9
- set :s3_bucket, 'my-backups'
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', github: 'yivo/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.4'
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.gz"
26
+ dir_filename = "#{name}.tar.xz"
27
27
  dir_fileparam = Shellwords.escape(dir_filename)
28
- cmd = "cd #{dir} && /usr/bin/env tar -czf #{tmp_path}/#{dir_fileparam} ."
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.gz"
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 -czf #{tmp_path}/#{file_bunch_param} ."
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}.gz"
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
- gzip = with_env "gzip -5 -c > #{tmp_path}/#{db_fileparam}"
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} | #{gzip}"
63
- system "#{dump} | #{gzip}"
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.gz"
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 -czf #{tmp_path}/#{db_fileparam} ."
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
@@ -11,18 +11,31 @@ module Backup
11
11
  end
12
12
 
13
13
  set :mysqldump_options, %w(
14
- --single-transaction
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
- --disable-keys
21
+ --debug-check
22
+ --debug-info
19
23
  --extended-insert
20
- --quick)
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
- "-u #{get(:mysql_user)} #{pass_param} -h #{get(:mysql_host)}"
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
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: 2015-12-21 00:00:00.000000000 Z
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.4.8
98
+ rubygems_version: 2.5.1
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Easy AWS S3 backup