Windows 7 で Robocopy 自動バックアップ

以前に Windows 7 で cron + rsync 自動バックアップ というエントリーで書いたように、Windows 7 でも Linux 等と同様に rsync を利用してバックアップを作成することはできる。今回は別の方法として、Robocopy (Robust File Copy) を利用してバックアップを取る方法をメモしておく。Robocopy はデスクトップ用 OS では Windows Vista 以降標準のコマンドとして用意されているようだ。

基本的な使い方は、コマンドプロンプトで、

robocopy <SRC> <DST> [OPT]

というように、コピー元 (SRC)、コピー先 (DST)、オプション (OPT) と実行する。

私は以下の様なバッチファイル (robocopy.bat) を作成した。

@echo off
setlocal
set RC=robocopy.exe
set SRC=%USERPROFILE%
set DST=Z:\Backup\Win
set LOG=%USERPROFILE%\robocopy.log
set OPT=/MIR /R:3 /V /FP /DCOPY:T /LOG:%LOG% /XD "Dropbox" /TEE

if not exist %SRC% goto error1
if not exist %DST% mkdir %DST%

%RC% %SRC% %DST% %OPT%
goto end

:error1
echo コピー元となる %SRC% が存在しません。
goto end

:end
endlocal

この例では、

SRC (コピー元) = %USERPROFILE% (ホーム)
DST (コピー先) = Z:\Backup\Win
LOG (ログファイル) = %USERPROFILE%\robocopy.log
OPT (オプション) = /MIR /R:3 /V /FP /DCOPY:T /LOG:%LOG% /XD "Dropbox" /TEE

となっている。ここで使用しているオプションだけメモしておく。

/MIR = ディレクトリのミラーリング (/e と /purge を指定する場合と同様)
/R:3 = コピー失敗の場合のリトライの数を指定する (デフォルト 1,000,000)
/V = アウトプットをVerboseにして、すべてのスキップされたファイルを示す
/FP = アウトプットのファイル名をフルパスにする
/DCOPY:T = ディレクトリのタイムスタンプをコピーする
/LOG:%LOG% = ログファイルを指定する (以前のものは上書きされる)
/XD "Dropbox" = 除外するディレクトリを指定する、ここでは Dropbox フォルダは除外した
/TEE = アウトプットをコンソールに表示し、ログに書き出す

その他のオプションなど詳しいマニュアルは リンク先 をご参照。

自動実行

上で作成したバッチファイル (robocopy.bat) をタスクスケジューラへ登録すればよい。

  • スタート→すべてのプログラム→アクセサリ→システムツール→タスクスケジューラ
  • タスクの作成→操作タブ→新規→プログラム/スクリプト robocopy.bat を選択→OK
  • トリガータブ→毎日をクリック→開始時刻を指定→OK

https://skalldan.files.wordpress.com/2013/04/wpid-robocopy.png

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s