Sha256: 9afe1fd5ca74fa254645968882dabcae983b792e2e46e7520d8ec69443ecfe2b
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module Dorsum class Downloader def initialize @frozen_time ||= Time.now @datetime = @frozen_time.strftime("%d-%m-%Y-%H-%M-%S") end def self.download new.download end def download ::Dorsum.configuration.databases.each do |db_name, settings| create_dump(db_name, settings) ensure_destination(db_name, settings) download_dump(db_name, settings) end true end private def create_dump(db_name, settings) puts 'Connecting to remote' Net::SSH.start(settings['host'], settings['user']) do |ssh| puts 'Creating dump' ssh.exec("dokku postgres:export #{settings['container_name']} > /tmp/#{db_name}-#{@datetime}.sql") end puts 'Dump ready now!' end def ensure_destination(db_name, settings) puts 'Checking destination folder' response = FileUtils.mkdir_p("#{settings['destination']}/#{db_name}/#{@frozen_time.year}/#{@frozen_time.month}") puts "Destination #{response.first} prepared" end def download_dump(db_name, settings) puts 'Starting download of dump' `scp #{settings['user']}@#{settings['host']}:/tmp/#{db_name}-#{@datetime}.sql #{settings['destination']}/#{db_name}/#{@frozen_time.year}/#{@frozen_time.month}/` puts 'Dump download finished, you are backed up!' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dorsum-1.0.0 | lib/dorsum/downloader.rb |