class RdBackup::Application

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

Public Class Methods

new(config) click to toggle source

Initialize the instance with a YAML configuration file @param config [String] path to the YAML config file

# File lib/rdbackup/app.rb, line 11
def initialize(config)
  @config = Psych.load(File.open(config))
end

Public Instance Methods

backup() click to toggle source

Call rdiff-backup for each source directory to backup

# 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