ファイルサーバのバックアップや引越しのために、フォルダを丸ごとコピーしたり、二つのフォルダの内容を同期(同じに保つ)したりするツールで、 最近のWindowsのリリースに含まれるMicrosoft製の標準ツールです。FileBlogパッケージには含まれませんが、FileBlogユーザはファイルサーバ管理に携わる方が多く、複数ファイルサーバに分散するデータを定期的に集めたり、 ファイルサーバの特定のフォルダを定期的に別のディスクにバックアップしたりといった作業を行う場合に、 robocopyコマンドの利用を推奨しております。(robocopyの動作については弊社で責任を負いかねますので、お客様責任でお使い下さい。)
MS-DOSの時代からのコマンドに「XCOPY」コマンドがありますが、これは今では古いコマンドなので robocopyをお勧めします。今どきXCOPYは役に立たないので、使うのは止めましょう。こう断言する理由は下記の二つで十分でしょう。
たとえば、下記の使い方が可能でしょう
FileBlogで複数拠点・複数ファイルサーバを検索できませんか?という問い合わせが時々ありますが、 拠点間ネットワークの狭い帯域越しにFileBlogを運用するよりも、robocopyによって拠点に分散するデータを収集し、 センター(または本社)に集中させてFileBlogで管理する方が、実用性能が出ることが多いのです。robocopyは タイムスタンプが更新された最新ファイルのみをコピーするので、対象データを絞ればWAN越しでも十分使えます。
Windows Vista /2008 以降では、標準でインストールされています。コマンドプロンプトで 「robocopy」と打てば起動できてヘルプメッセージを見ることが出来るでしょう。インストールされていない環境の場合は、 Microsoftのホームページから「Windows Server 2003 Resource Kit Tools」を探して、rktools.exe をダウンロードし、 インストールできます。(ダウンロードページは英語のページしかありませんが…)
たとえば下記のように使います
| robocopy src dest /MIR | ミラーする。(削除も反映する) |
| robocopy src dest /E /PURGE | 上(/MIR)に同じ |
| robocopy src dest /E | 空のサブディレクトリ含めてコピー |
| robocopy src dest /MIR | ミラーする。(削除も反映する) |
| robocopy "C:\Test Folder\Docs" "\\TargetServer\Share\Docs" /MIR /XD temp" | "temp"フォルダ・ファイル以外をミラーする |
上記のように/PURGEや/MIRオプションを指定すると、コピー元で削除されたファイルをコピー先からも削除します。 コピー先からの削除を嫌う場合は外してください
例えば、他のサーバにファイルをバックアップするコマンドは下記のようになります。
robocopy F:\Mb2Mail20070606\Mb2Mail_Doc \\Clover\h$\Backup\DocFiles
/MIR /XD temp /R:0 /LOG:"\\Clover\h$\Backukp\Logs\copy.log" /NP /NDL
各オプションの意味は次の通り
| /NP | コピー進捗を出力しない。大きなファイルの場合、このオプションが無いと1%刻みでログを出力してしまうので、バッチ実行時には必ずつけるべきです |
| /NDL | フルパスを出力しない(ログファイルをコンパクトにできます) |
| /NFL | ファイル名を出力しない(ファイル単位のログが不要なときに指定) |
| /R:0 | コピー失敗時の30秒後リトライはしない(デフォルトだと100万回リトライするので、アクセス権ないファイルがあったときに処理が凍ってしまいます) |
| /XJ | ファイル、フォルダのシンボリックリンクをたどらない(Vista向け) |
| /COPY:DAT | コピー対象のデフォルト(D=データ, A=属性, T=タイムスタンプ) |
| /COPY:DATS | セキュリティもコピーする |
| /COPY:DT | データと日付のみコピーする(コピー先がWindows以外のNASなどの場合に使う) |