« unzipで標準出力を抑制する | トップページ | エラー: 旧来の構文はサポートされません: copyright »

ROBOCOPYを使ったミラーリング・バックアップ

PCのデータフォルダのバックアップが唐突に取りたくなった。
要件は以下のとおり。

  1. rsyncみたいな差分同期・ミラーリング機能。
  2. バックグラウンドプロセスで動くジョブ。
  3. 重くならない。
  4. お手軽。

いろいろと探すと、どうやら「ROBOCOPY.EXE」というヤツがいいらしい。
Windowsに標準では入っていないものの、Windows2003のリソースキットツールに入っているそうだ。

・Download details: Windows Server 2003 Resource Kit Tools
http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

「Windows2003」用だけど、System Requirementsのところには「Windows XP」「Windows XP」が書いてある。SP2とかがないのが気になるがまぁ動くだろ、ってことでインスコ。

■実行
以下のようなオプション付きで実行。

"C:\Program Files\Windows Resource Kits\Tools\robocopy.exe" C:\data Z:\data /MIR /MOT:10 /Z /TBD /NP /NDL /LOG+:C:\data\log\robocopy\SyncBackUp.log

  • /MIR  ミラーリングモードで実行。コピー元とコピー先の完全な同期。
  • /MOT:n  プロセスが常駐し、n分後に差分同期を実行。
  • /Z  途中で止めても再開可能なモードでファイルコピーを行う。パフォーマンスは下がるらしいがまぁいいや。
  • /TBD  共有名が定義されるまで待機。ネットワークドライブを割り当てるまで待つって意味か。
  • /NP  「○○%コピーしたよ」というメッセージを出さない。ログファイル出力するときにはコレを指定しないと、ログがグチャグチャになる。
  • /NDL  ログにファイルのディレクトリ名を出さない。コレをやっておくと、更新ファイルの情報のみログファイルに記録される。逆にコレがないとファイルリスト全部がログに記録されて、ファイルサイズがえらいことになる。
  • /LOG+:filepath  ログファイル名。追記モード。

おおっ、うまくデータ同期ができた。これでマシンが転けても大丈夫。

■バックグラウンドでひっそりと実行する

unixのcronみたいに、バックグラウンドでひっそりと実行させたい。

robocopy自体に /MOTオプションがあるので、これで決まった間隔ごとにバックアップは可能。あとは「バックグラウンド」で実行、をどうするか。

  1. グループ・ポリシー・エディタを起動。「コマンドを指定して実行」で、gpedit.msc を入力して実行。
  2. 「ローカル コンピュータ ポリシー」 - 「ユーザーの構成」 - 2009050101_4 「Windows の設定」 - 「スクリプト(ログオン/ログオフ)」を選択し、「ログオン」のスクリプトを新規追加する。
    「コンピュータの構成」のほうでもいいんだけど、それだとSYSTEMユーザーで実行されるらしいので、バックアップのコピー先が別サーバで、かつユーザー管理を厳重にしているところだとアクセス拒否されてROBOCOPYが終わってしまうことがある。
  3. 実行するコマンドと、それに渡す引数をそれぞれ入力し、「OK」を押す。2009050202_3
  4. ログオフ→ログオンし直す。動いた。これで勝手にバックアップしてくれる。またログも吐いているのでおかしかったらそこを見ればよい。

しかしこんな便利なツール、デフォルトで入れておいてくれないかねーと思ったらVistaでは入っているのか。

以下のサイトが大変参考になった。

・Sunvisor Lab. - Robocopyでフォルダをコピー
http://www.sunvisor.net/modules/pico/script/robocopy.htm
・ROBOCOPYでバックアップ - SSK World
  http://www.sskworld.net/2009/04/robocopy.php
・Robocopy.exe - Windows Live
  http://mediawithms.spaces.live.com/blog/cns!BE8B403EF3C6D5A6!167.entry

|
|

« unzipで標準出力を抑制する | トップページ | エラー: 旧来の構文はサポートされません: copyright »

Windows」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1168732/29221019

この記事へのトラックバック一覧です: ROBOCOPYを使ったミラーリング・バックアップ:

« unzipで標準出力を抑制する | トップページ | エラー: 旧来の構文はサポートされません: copyright »