̃Gg[͂ĂȃubN}[Nɒlj

Windows :: コマンド / robocopy



コマンド説明
robocopyrobocopy は Robust File Copy の略で、堅牢(robust)なファイル・コピーという意味を持っています。もともとはリモートのファイル・サーバ同士でフォルダを同期させるために作られたコマンドです。robo != robot(ロボット) なので、ご注意ください。


robocopy でお手軽ミラーリング・バックアップ

クラウド全盛の世の中ですが、外付けHDD等の物理ドライブにバックアップを取る場合もあるかと思います。
特に大容量のデータや、何も考えずに丸っとドライブごとバックアップしたい時など、クラウドだと出費がかさんでしまいます。
私が採用している手法は、リアルタイムでバックアップが必要なデータのみ、Dropbox や SugarSync を利用し、それ以外の比較的大きな容量のデータは、定期的に外付けHDD等にバックアップを取るというものです。

外付けHDD等にバックアップをするにあたり、以前はフリーウェア等を利用していましたが、OSが変わった時など、利用していたフリーウェアがバージョンアップされておらず、利用できなくなったことがありました。

そこでお奨めしたいのが、Windowsに標準搭載されているコマンド「robocopy」です。
※Vista以降は標準搭載。XPは、別途インストールが必要。

下記のような「ROBOCOPY.backup.bat」を作って、定期的に実行すれば、ミラーリング・バックアップが簡単に出来ます。
わざわざ専用ソフトをインストールしなくて良いのでお奨めです。


ROBOCOPY.backup.bat(サンプルコード)

@ECHO OFF
Setlocal
ECHO "バックアップ先のドライブを指定してください (d, e, f or etc)"
SET /p drive=
@ECHO ON

ROBOCOPY "C:\Users\USER1\Desktop" "%drive%:\Users\USER1\Desktop" /MIR /XO /R:0 /W:0
ROBOCOPY "D:\Data\path\to\data01" "%drive%:\Data\path\to\data01" /MIR /XO /R:0 /W:0

@ECHO OFF
Setlocal
ECHO "バックアップが完了しました (Press `enter key')"
SET /p c=
EXIT
:CONTINUE
@ECHO ON


上記 ROBOCOPY.backup.bat(サンプルコード)の説明

ミラーリングのパスについて

コピー元 コピー先
C:\Users\USER1\Desktop%drive%:\Users\USER1\Desktop
D:\Data\path\to\data01%drive%:\Data\path\to\data01
  • サンプルコードの場合、上記の2つのパスに対してミラーリングを行います。
    • ミラーリングのパスについては、自分の環境に合わせて適宜変更してください。
    • パスは最低1つからで、3つ以上に増やすことも可能です。
  • コピー先「%drive%:\Users\USER1\Desktop」については、最初からフォルダ構造を作っておく必要があります。
    • %drive% の箇所は、マウント時のドライブレターが補完されます。(後述)


オプションについて

オプション説明
/MIRディレクトリツリーをミラーリングします。追加されたファイルは追加。更新されたファイルは上書き。削除されたファイルはコピー先からも削除されます。
/XO古いファイルはコピーしない。デフォルトの動作ではコピー元が古い場合でもコピーを行うが、それを行わなくする。
/R:0コピーに失敗した場合、再試行を行わない。(失敗したにコピー対する再試行数: 既定値は 1,000,000)
/W:0再試行と再試行の間の待機時間を0秒に設定。(再試行と再試行の間の待機時間: 既定値は、30 秒)


保存について

上記サンプルコードを自分の環境に合わせて適宜修正したら、「ROBOCOPY.backup.bat」というファイル名前で保存します。
※ファイル名はお好みでOKですが、拡張子は「.bat」にします。
特に「ミラーリングのパス」は、このままでは動作しませんので、必ず環境に合わせて設定してください。


実行手順

「ROBOCOPY.backup.bat」をダブルクリックして実行するとコマンドプロンプトが立ち上がります。
すると下記のように聞かれますので、外付けHDD等がマウントされたドライブレターを入力して、エンターキーを押します。

バックアップ先のドライブを指定してください (d, e, f or etc)

ここで入力したドライブをバックアップ先として、バックアップを行うようになります。
※内部的にコードの「%drive%」が置換されます。
外付けHDD等を接続した際に、割り当てられたドライブレターを確認しておいてください。
通常は、d, e, f のいずれかになると思われます。(環境に依存します)

バックアップ中は、ミラーリング状況がリアルタイムで画面に出力されます。
出力をログに残すことも可能ですが、ここでは割愛します。興味のある方はご自身で調べてください。


終了手順

バックアップが完了すると、下記のようにメッセージが表示されます。

バックアップが完了しました (Press `enter key')

エンターキーを押して、終了します。


ご注意

最初に試す場合は、特にコピー先のドライブはバックアップを取るか、必要なデータがない状態で試してください。
ミラーリングパスの設定を誤ると、意図しないフォルダやファイルがミラーリングされ、上書きされてしまう場合があります。
すべては自己責任において実行してください。





windows/command/robocopy.txt