Robocopy.exe

皆さんこんにちは。マイクロソフトの畠山です。
すっかり新年気分も終わりまして、私もお客様と様々なお話を活発にさせていただいております。
仕事がすっかり始ったんだ!という気分に入れ替わっております。
 
さて、今日は、Windows Resource Kit Toolsの中のRobocopy.exeをご紹介します。
私が長年使っているファイルコピーツールでして、前回簡単にご紹介しましたが、様々な場面で皆さんのお役に立つものかと思います。
 
コマンドラインツール:
このツールは、コマンドプロンプトから実行します。これで何がよいかというと、定期的なジョブなどを、タスクスケジューラーに登録しておけば (皆さんお使いの各種管理ツールでもよいですが)、実行できます。バッチジョブ化できるということですね。
これ、「繰り返し」の処理に非常に便利です。
 
入手方法:
「リソースキット」字体は書籍として出版されていますので、そちらに添付のCD-ROMからも入手可能です。こちらは、それぞれの製品に関しての情報に加えてこのツールもお使いいただけるものとなっています。
日経BP様 リソースキット・シリーズ
 
もしくは、Microsoftのダウンロードセンターから無料で入手も可能です。
Windows Server 2003 Resource Kit Tools:
 
使用例:
シナリオ) 2つのフォルダ内で、ファイルの追加・更新・削除時に、コピー元から反映させたい。
以下のコマンドライン文字列を入力してください。
 
robocopy <コピー元> <コピー先> /MIR /Z
 
 /MIR オプションは、ファイルの追加、更新、削除を反映してくださいよ、という指定です。
 /Z オプションは、途中で止めても、再開可能なようにしてくださいよ、という指定です。これ、めちゃめちゃ便利です。特に大きなファイルをコピーするときに、通常のエクスプローラーで、ドラッグアンドドロップすると、それが終わるまで、そのプログラム停止できません。
 
robocopy <コピー元> <コピー先> /MIR /Z /R:1 /W:1
 
 /R:n オプションは、エラーがあったときにn回リトライしてくださいよ、という指定です。2つのフォルダの生存期間がかなり長い場合は、1でやっちゃいます。ファイルが他の人によって開かれている場合は、robocopyではエラー扱いされてしまいますので (これは回避できなかったと思いますが)。
 /W:n オプションは、エラーがあったときに、n秒待ちますよ、という指定です。これも通常は1で指定しちゃいますね。
 
以下、フォルダA、Bがあった場合に、ひとつのコピー元から、A、Bに反映が簡単にできます。
 
robocopy \daiyu.hatakeyemasharemaster c:Data /MIR /Z /R:1 /W:1
 
これを、.batファイルとして保存しておけば、あとは起動させるだけです。
 
私の個人データの独自バックアップは全部これで賄っております。これまで何度もWindows OSをフォーマット再インストールしていますが、これでバックアップしたものから、戻すだけで、データの引き継ぎ完璧です!戻すものもバッチファイルにしていますので。
 
また回があれば、robocopyのさらなる使い方や、ほかのツールもご紹介したいと思います。
 
注:皆さんの本番環境で使用する場合には、ファイルコピー同期を確認する方法や、robocopyがうまく動作しなかった場合の検知。そして、このツールのCPU、Diskなどの使用率などを加味してから、使ってください。
 
2007年1月16日
畠山大有
 
 
 

コメントを残す