バックアップ用の簡単なスクリプトを書いてみる(核爆)
で、購入してきた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
ご参考
この辺の情報をかな〜り参考にさせてもらいました。多謝m(_"_)m
http://www.namaraii.com/rubytips/
http://www.ruby-lang.org/ja/man/html/fileutils.html
http://www.ruby-lang.org/ja/man/html/logger.html
http://d.hatena.ne.jp/kyagi/20090529/1243531521
ドハマリ
む、コピーできないものがあるとそこで処理が停止してしまう
そこはスルーして処理を継続してほしいんだけどなぁ。。。
どうにかならんものか。。。
じゃ、指定のディレクトリに対してfindをかけて、それをコピーするかと思ったら"Permission denied"でfindが通らない。。。
orz
オチ
吊るしで売っているメーカ製Vistaマシンなので、バックアップソフトがついていました。
で、それでバックアップを取ってもらうことにしました。
くそう。。。orz