Class: P2bBackup::Backup
- Inherits:
-
Object
show all
- Defined in:
- lib/p2b-backup/backup.rb
Instance Method Summary
collapse
Constructor Details
#initialize(opts = {}) ⇒ Backup
Returns a new instance of Backup.
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/p2b-backup/backup.rb', line 12
def initialize(opts = {})
@dbuser = opts[:dbuser]
@dbpass = opts[:dbpass]
@databases = opts[:databases]
@keep = opts[:keep]
@tmpname = "#{Time.now.strftime('%Y-%m-%dT%H:%M:%S').gsub(/:/, '-')}.sql.gz"
@provider = case opts[:provider]
when 's3' then P2bBackup::Providers::S3.new(opts[:provider_opts])
when 'sftp' then P2bBackup::Providers::Sftp.new(opts[:provider_opts])
else raise "Unknown provider #{opts[:provider]}"
end
end
|
Instance Method Details
#backup_database(database) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/p2b-backup/backup.rb', line 26
def backup_database(database)
if system(backup_command(database))
@provider.upload("#{Dir.tmpdir}/#{database}.#{@tmpname}", filename: @tmpname)
FileUtils.rm "#{Dir.tmpdir}/#{database}.#{@tmpname}"
puts "successful backup: #{Dir.tmpdir}/#{database}.#{@tmpname}"
else
raise "Unable to dump database '#{database}' wtf?"
end
end
|
#new_backup ⇒ Object
36
37
38
39
40
|
# File 'lib/p2b-backup/backup.rb', line 36
def new_backup
@databases.each do |db|
backup_database(db)
end
end
|
#normalize_name(obj) ⇒ Object
42
43
44
|
# File 'lib/p2b-backup/backup.rb', line 42
def normalize_name(obj)
obj.key.gsub(%r{^.*?/}, '')
end
|