module Bizside::Rsync
Public Class Methods
cleanup_old_dirs(backup_dirs, generations)
click to toggle source
# File lib/bizside/rsync.rb, line 4 def self.cleanup_old_dirs(backup_dirs, generations) if backup_dirs.size > generations puts '--------------------' while backup_dirs.size > generations old_backup_dir = backup_dirs.shift puts "古いバックアップを削除します。#{old_backup_dir}" FileUtils.rm_r(old_backup_dir, :force => true) end puts '--------------------' end end
get_backup_dirs(backup_base_dir)
click to toggle source
YYYYMMDDHHMMSS形式 .failed や .running は除外する
# File lib/bizside/rsync.rb, line 33 def self.get_backup_dirs(backup_base_dir) ret = Dir::glob(File.join(backup_base_dir, '2*')).reject{|dir| File.basename(dir).index('.') } ret = ret.sort ret end
next_generation(backup_dir) { || ... }
click to toggle source
# File lib/bizside/rsync.rb, line 16 def self.next_generation(backup_dir) running_dir = backup_dir + '.running' failure_dir = backup_dir + '.failed' begin FileUtils.ln_s(backup_dir, running_dir) yield rescue => e FileUtils.ln_s(backup_dir, failure_dir) raise e ensure FileUtils.rm_f(running_dir) end end