バックアップ用の簡単なスクリプトを書いてみる(核爆)

で、購入してきたFDDドライブに四苦八苦する親父の姿を見た。
何とかしてやれんかな、と思い
簡単なバックアップデータをかき集めてくるスクリプトを書いてみることにする。
とりあえずOne-clickインストーラーでRubyをぶっこんでテキストエディタでカタカタと。
1時間半ぐらいでこんなんできました。

require 'fileutils'
require 'logger'
log = Logger.new(STDOUT)
log.level = Logger::DEBUG
log.datetime_format = "%Y/%m/%d %H:%M "

targets = Array.new
targets << %q|c:\hoge\dir1|
  :

dest_dname = "D:\\backup\\" + Time.now.strftime("%Y%m%d")

log.info("ディレクトリ#{dest_dname}を作成します。")
if File.exist?(dest_dname)
  log.info("ディレクトリ#{dest_dname}は既に存在しています。")
  log.info("\t→そのためディレクトリは作成しません。")
else
  FileUtils.makedirs(dest_dname)
end

targets.each{|base|
  begin
    log.info("#{base}をコピーします。")
    FileUtils.cp_r(base, dest_dname)
  rescue => ex
    nil
  ensure
    if(ex)
      log.warn("#{base}のコピーに失敗しました。")
      log.debug(ex.message)
    end
  end
}

log.info("対象のバックアップが完了しました。")

で、こいつを以下のバッチで駆動してみる

ruby mk_backup.rb
pause

ドハマリ

む、コピーできないものがあるとそこで処理が停止してしまう
そこはスルーして処理を継続してほしいんだけどなぁ。。。
どうにかならんものか。。。

じゃ、指定のディレクトリに対してfindをかけて、それをコピーするかと思ったら"Permission denied"でfindが通らない。。。

orz

オチ

吊るしで売っているメーカ製Vistaマシンなので、バックアップソフトがついていました。
で、それでバックアップを取ってもらうことにしました。
くそう。。。orz