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 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