サーバーやパソコン内のフォルダをバックアップしたい場合、Windowsに標準で搭載されている「robocopy」コマンドについて紹介する。
robocopyコマンドは、無料で高速にファイルのバックアップができる。高速な理由は変更されていないファイルはコピーしないため。ファイル数が多いフォルダの場合に特に効果がある。
フォルダのバックアップコマンドの使用方法
robocopyコマンドの基本的な書式は下記となる。
ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...] [オプション]
コピー元 | (指定必須)コピー元フォルダ (ドライブ:\パスまたは \\サーバー\共有\パス)。 |
コピー先 | (指定必須)コピー先フォルダ (ドライブ:\パスまたは \\サーバー\共有\パス)。 |
ファイル | (指定任意)コピーするファイル (名前/ワイルドカード: 既定値は「*.*」) ※特定の種類(拡張子)のファイルのみを対象にするような場合に使用できる。 PDFファイルのみの場合は「*.pdf」と指定する |
オプション | (指定任意)コピー時の詳細な挙動の設定を指定する |
robocopy のオプション
よく使うオプションは下記となる。
オプション引数 | 説明 |
---|---|
/MIR | ディレクトリ ツリーをミラー化する |
/NP | 進行状況なし – コピーの完了率を表示しない |
/R:n | 失敗したコピーに対する再試行数: 既定値は 1,000,000。”n”部分に数字を指定 |
/W:n | 再試行と再試行の間の待機時間: 既定値は、30 秒。”n”部分に数字を指定 |
/LOG+:ファイル | ログ ファイルに状態を出力する (既存のログ ファイルに追加する)。 |
robodopy のサンプルコマンド
サンプル1 サーバーのフォルダをローカルにミラーリングする
robocopy "\\server\folder1" "c:\backup\folder1" /MIR /R:3 /W:5 /NP /LOG+:"c:\backup\robocopy_details.log"
解説
“\\server\folder1″のすべてのファイルを”c:\backup\folder1″にすべてコピーする。
/R:3、/W:5:コピーに失敗した場合は3回まで5秒間隔で再試行する
/NP:コピーの状況をコマンド上に表示しない
/LOG+~: “c:\backup\robocopy_details.log” に実行状況のログを過去の実行状況を残して追記する。
フォルダのバックアップコマンド バッチサンプル
フォルダのバックアップのバッチサンプルを紹介する。
下記のサンプルをメモ帳などで作成して、ファイル名を「sample.bat」などとして保存する。念のため、コピー先、コピー元のファイルは別にバックアップして試すこと。特にコピー先に既存のフォルダを指定した場合、既存のファイルが削除される可能性があるため、注意。
コピー元、コピー先、ログファイルを変数としておけば、後で変更する場合にわかりやすい。
SET COPYFROM="\\server\folder1"
SET COPYTO="c:\backup\folder1"
SET LOG="%~n0.log"
CALL ROBOCOPY %COPYFROM% %COPYTO% /R:5 /MIR /NP /LOG+:%LOG%
pause
解説
SET COPYFROM="\\server\folder1"
SET COPYTO="c:\backup\folder1"
SET LOG="%~n0.log"
「COPYFROM」変数に、コピー元のフォルダを指定。
「COPYTO」変数に、コピー先のフォルダを指定。
「LOG」変数に、バッチファイルの拡張子を除いたファイル名を指定。バッチファイルが「sample.bat」の場合、「sample.log」というファイル名となる。
CALL ROBOCOPY %COPYFROM% %COPYTO% /R:5 /MIR /NP /LOG+:%LOG%
robocopyコマンドを実行。
pause
コマンド実行画面を閉じずに、何かキーが押されるまで待機する。実行状況の確認をコマンド画面で確認できる。自動実行する場合は、この記述は削除すること。
コメント
[…] オプション設定はWindowsフォルダをバックアップするコマンド(ROBOCPY)|システム開発メモの丸パクリだ。内容はこんな感じ。 […]