Class: RdBackup::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/rdbackup/app.rb

Overview

Backup all directories define in a YAML configuration file. The actuel backup is ensured by rdiff-backup command.

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Application

Initialize the instance with a YAML configuration file



11
12
13
# File 'lib/rdbackup/app.rb', line 11

def initialize(config)
  @config = Psych.load(File.open(config))
end

Instance Method Details

#backupObject

Call rdiff-backup for each source directory to backup



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rdbackup/app.rb', line 16

def backup
  @config["backup"].each do |item|
    local_dir=item["directory"]
    remote_host=item["server"]["hostname"]
    remote_dir=item["server"]["directory"]

    additional_dir = local_dir.split('/').last

    well_executed = system("rdiff-backup #{local_dir} #{remote_host}::#{remote_dir}/#{additional_dir}")
    raise "rdiff-backup failed" unless well_executed
  end
end