以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/03/04/140310より取得しました。


n世代のバックアップを保存するRubyスクリプト

設定フォルダをバックアップ取りたい。N世代のバックアップを取る方法は幾つもあるし、
1日毎にバックアップを取得するならコマンドで済む

毎日のバックアップ

rsync -a /var/www /var/back/`date -I`/

コレだと、ファイルを作りすぎるので直近5件だけでいい。

直近五件をスクリプトでやる

def backup_generation(src, backupdir,n=5)
    dist = File.expand_path(backupdir)
    src  = File.expand_path(src)
    name = File.basename(src)
    cmds = []
    (n-1).times{|i|
      cmds << "mv #{dist}/#{name}.#{i}.tgz #{dist}/#{name}.#{i+1}.tgz" if File.exists? "#{dist}/#{name}.#{i}.tgz"
    }
    cmds.reverse!
  cmds << "tar cvzf #{dist}/#{name}.0.tgz  #{src}"
  puts cmds
    cmds.each{|cmd|
      `#{cmd}`
    }

end

crontab は管理が面倒なのでDaemonにした

Crontab は登録したことを忘れるので、init.d に登録して自動起動にする。
Daemonsをつかうとinit スクリプトになるので重宝している。

require 'daemons'

dir = File.expand_path(Dir.pwd)
worker = Proc.new{
    loop{
        backup_generation("#{dir}/exmample.com/","#{dir}/../www.back")
        sleep 60*60*24*3
    }
}


Daemons.run_proc("www_backup",&worker)



以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2014/03/04/140310より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14