Module: Bizside::Rsync
- Defined in:
- lib/bizside/rsync.rb
Class Method Summary collapse
- .cleanup_old_dirs(backup_dirs, generations) ⇒ Object
-
.get_backup_dirs(backup_base_dir) ⇒ Object
YYYYMMDDHHMMSS形式 .failed や .running は除外する.
- .next_generation(backup_dir) ⇒ Object
Class Method Details
.cleanup_old_dirs(backup_dirs, generations) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# 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) ⇒ Object
YYYYMMDDHHMMSS形式.failed や .running は除外する
33 34 35 36 37 |
# 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) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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 |