PCのバックアップ(ミラーリング)設定で、ROBOCOPYコマンドがあることに気づきました。
「2009/07/31 HDD(ハードディスク)バックアップ環境の再構築 」の続編です。
Vistaのバックアップと、フリーウェアのバックアップツール(常時バックアップ設定)で競合が起きて、OSのバックアップがエラーになってしまう問題があり、UNIX系のrsyncみたいなコマンドあるのではと思って、ググってみたら、ありました。
2009/2/4 スーパーユーザーのためのWindowsコマンド再入門:robocopy――ファイルのコピーやミラーリング(ITmedia)
2007/4/20 robocopyでフォルダをバックアップ/同期させる (@IT)
ITmediaさん、助かります!!
ROBOCOPY、全然知りませんでした。
最近、システムよりのオペレーションを全然やらなくなったので、浦島太郎状態ですね。
-
ということで、早速、ROBOCOPYをお試しです。
オプションコマンドなど、諸々をチェックして、ひとまずコマンドプロンプトから実行。
C:\Windows\system32\ROBOCOPY G:\ H:\ /MIR
動作チェック中に「アクセスが拒否されました」となってしまうファイルがあったのですが、良く見ればアクセス権の無い"system volume information”フォルダだったので、オプションコマンド /XD で除外フォルダに指定しました。
とりあえずのコマンドラインは、以下の設定です。
C:\Windows\system32\ROBOCOPY G:\ H:\ /MIR /XD "System Volume Information" /R:5 /ZB /MON:1 /MOT:5 /RH:2000-0800
これを任意のファイル名でバッチファイル化します。(私は、分かりやすい方が良いので、robocopy.bat とましたが。)
----
ちなみに、ノートPCのローカルCドライブをバックアップツールで外付けGドライブにウィークリーでバックアップ&すぐにアクセスしたいバックアップデータを別に手動コピーしておくのですが、さらに外付けHドライブにGドライブのデータをミラーリングしておく(ややこしい)という構成で設定を行います。
整理すると、
Cドライブ→Gドライブ
- ウィークリーのファイルバックアップ
- 随時手動のファイルバックアップ
- たまにComplete PC バックアップ
Gドライブ→Hドライブ
- ミラーリングによる完全同期
ということになります。
----
テスト結果は、概ねちゃんとした動きをしていそうなのですが、Hドライブをフォーマットし直して、ゼロからrobocopyでGドライブからミラーリングテストをやり直しました。
また、オプション設定(/MON /MOT)で監視(モニタリング)もできるので、コマンドプロンプトでの実行だと、せっかくの常駐監視機能が、ウィンドウかタスクバーで表示されっぱなしになってしまうので、スタートアップでのバッチファイル起動ではなく、バックグラウンドで稼働できるように、Microsoft管理コンソール(MMC)にコマンドラインのバッチファイルを登録することで、バックグラウンドで実行できるようにします。(ミラーリングテスト終了後に実施します。)
--
2009/8/5 追記です。
MMCでの起動設定や確認などに手間取ったので、シンプルに、タスクスケジューラにバッチファイルを登録で、常駐監視のスタートアップ起動を行う事にしました。
まずは、バッチファイルの作成ですが、試しで作成したものから修正して、24時間稼働で、30分毎にミラーリングすることにしまして、念のため、リトライ回数は5回のままで、
C:\Windows\system32\ROBOCOPY G:\ H:\ /MIR /XD "System Volume Information" /R:5 /MON:1 /MOT:30
これをrobocopy.bat として保存しました。
次に、コントロールパネル → 管理ツール → タスクスケジューラ
「タスク作成...」
- 「全般」タブ
「名前」で任意のタスク名を設定(今回は、Robocoy)
ラジオボタン「ユーザがログオンしているかどうかにかかわらず実行する」を選択 - 「トリガ」タブ
「新規」→「タスクの開始」のドロップダウンリストから「スタートアップ時」を選択
※一覧表示されたトリガには、「スタートアップ時」詳細情報に「システム起動時」と表示されます。 - 「操作」タブ
「新規」→「操作」のドロップダウンリストからデフォルトの「プログラムの開始」を選択
設定のプログラム/スクリプトにて、起動するバッチファイルを選択(今回は、robocopy.bat) - 「設定」タブ
Robocopyの設定(オプション)を変更した際など、再起動できるようにするために、「タスクを要求時に実行する」チェックボックスをオンにする。 - 登録完了時に、バッチファイルを起動するWindowsアカウントのパスワード入力ダイアログが表示されるので、パスワードを入力してOKで完了です
試しにPCを再起動すると、タスクバーやWindow画面が表示されていないことが確認でき、さらにタスクマネージャで「プロセス」を確認すると、「Robocoy.exe」が起動していることが確認できます。
--
■関連情報
- Microsoft管理コンソール/Microsoft Management Console : MMC(Microsoft TechNet)
- robocopy(Microsoft TechNet 英語)
- RichCopy(Microsoft TechNet)
- Robocopy GUI(Microsoft TechNet)
- C:\Windows\system32>robocopy /? の出力結果
--▼「robocopy /?」ここから▼--
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: Tue Aug 04 19:55:07 2009
使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...]
[オプション]
コピー元 :: コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー
\共有\パス)。
コピー先 :: コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー
\共有\パス)。
ファイル :: コピーするファイル (名前/ワイルドカード: 既定値は「*.*」
です)
::
:: コピー オプション:
::
/S :: サブディレクトリをコピーしますが、空のディレクトリはコピ
ーしません。
/E :: 空のディレクトリを含むサブディレクトリをコピーします。
/LEV:n :: コピー元ディレクトリ ツリーの上位 n レベルのみをコピーし
ます。
/Z :: 再起動可能モードでファイルをコピーします。
/B :: バックアップ モードでファイルをコピーします。
/ZB :: 再起動可能モードを使用します。アクセスが拒否された場合、
バックアップ モードを使用します。
/EFSRAW :: 暗号化されたすべてのファイルを EFS RAW モードでコピーし
ます。
/COPY:コピーフラグ :: ファイルにコピーする情報 (既定値は /COPY:DAT)。
(コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
(S= セキュリティ =NTFS ACL、O= 所有者情報、U= 監査情報)。
/DCOPY:T :: ディレクトリ タイムスタンプをコピーします。
/SEC :: セキュリティと共にファイルをコピーします (/COPY:DATS と
同等)。
/COPYALL :: ファイル情報をすべてコピーします (/COPY:DATSOU と同等)。
/NOCOPY :: ファイル情報をコピーしません (/PURGE と共に使用すると便
利)
/SECFIX :: スキップしたファイルも含むすべてのファイルのファイル セ
キュリティを修正します。
/TIMFIX :: スキップしたファイルも含むすべてのファイルのファイル時刻
を修正します。
/PURGE :: 既にコピー元に存在しないコピー先のファイル/ディレクトリ
を削除します。
/MIR :: ディレクトリ ツリーをミラー化します (/E および /PURGE と
同等)
/MOV :: ファイルを移動します (コピー後にコピー元から削除)。
/MOVE :: ファイルとディレクトリを移動します (コピー後にコピー元か
ら削除)。
/A+:[RASHCNET] :: コピーされたファイルに指定の属性を追加します。
/A-:[RASHCNET] :: コピーされたファイルから指定の属性を削除します。
/CREATE :: ディレクトリ ツリーと長さ 0 のファイルのみを作成します。
/FAT :: 8.3 FAT ファイル名のみを使用してコピー先ファイルを作成し
ます。
/256 :: 256 文字を超える非常に長いパスのサポートをオフにします。
/MON:n :: コピー元を監視し、n 回を超える変更があった場合に再度実行
します。
/MOT:m :: コピー元を監視し、変更があった場合 m 分間再度実行します。
/RH:hhmm-hhmm :: 実行時間 - 新しいコピーを開始できる時刻です。
/PF :: 実行時間をファイルごと (パスごとではない) に確認します。
/IPG:n :: 低速回線で帯域幅を解放するためのパケット間ギャップ (ミリ
秒) 。
/SL :: ターゲットではなくシンボリック リンクをコピーします。
::
:: ファイル選択オプション:
::
/A :: アーカイブ属性が設定されているファイルのみをコピーしま
す。
/M :: アーカイブ属性のあるファイルのみをコピーし、リセットしま
す。
/IA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルのみを含
みます。
/XA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルを除外し
ます。
/XF ファイル [ファイル]... :: 指定された名前/パス/ワイルドカードに一致
するファイルを除外します。
/XD ディレクトリ [ディレクトリ]... :: 指定された名前/パスに一致するディレクト
リを除外します。
/XC :: 変更されたファイルを除外します。
/XN :: 新しいファイルを除外します。
/XO :: 古いファイルを除外します。
/XX :: コピー先にだけ存在するファイルとディレクトリを除外し
ます。
/XL :: コピー元にだけ存在するファイルとディレクトリを除外し
ます。
/IS :: 同一ファイルを含みます。
/IT :: 異常なファイルを含めます。
/MAX:n :: 最大ファイル サイズ - n バイトより大きいファイルを除外し
ます。
/MIN:n :: 最小ファイル サイズ - n バイトより小さいファイルを除外し
ます。
/MAXAGE:n :: 最長ファイル有効期間 - n 日より古いファイルを除外します。
/MINAGE:n :: 最短ファイル有効期間 - n 日より新しいファイルを除外しま
す。
/MAXLAD:n :: 最大最終アクセス日 - n で指定する値以後に使用していない
ファイルを除外します。
/MINLAD:n :: 最小最終アクセス日 - n で指定する値以後に使用されたファ
イルを除外します。
(n < 1900 の場合、n = n 日です。それ以外は、n = YYYYMMDD
の日付です)。
/XJ :: 接合ポイントを除外します (通常、既定で含まれます)。
/FFT :: FAT ファイル時間 (2 秒の粒度) を仮定します。
/DST :: 1 時間の DST 時間差を補正します。
/XJD :: ディレクトリの接合ポイントを除外します。
/XJF :: ファイルの接合ポイントを除外します。
::
:: 再試行オプション:
::
/R:n :: 失敗したコピーに対する再試行数: 既定値は 1,000,000。
/W:n :: 再試行と再試行の間の待機時間: 既定値は、30 秒です。
/REG :: /既定の設定としてレジストリに R:n と /W:n を保存します。
/TBD :: 共有名が定義されるのを待ちます (再試行エラー 67)。
::
:: ログ オプション:
::
/L :: リストのみ - いずれのファイルにも、コピー、タイムスタン
プの追加、または削除を実施しません。
/X :: 選択されたファイルのみではなく、余分なファイルをすべて報
告します。
/V :: スキップされたファイルを示す詳細出力を作成します。
/TS :: 出力にコピー元ファイルのタイム スタンプを含めます。
/FP :: 出力にファイルの完全なパス名を含めます。
/BYTES :: サイズをバイトで出力します。
/NS :: サイズなし - ファイル サイズをログに記録しません。
/NC :: クラスなし - ファイル クラスをログに記録しません。
/NFL :: ファイル リストなし - ファイル名をログに記録しません。
/NDL :: ディレクトリなし - ディレクトリ名をログに記録しません。
/NP :: 進行状況なし - コピーされた % を表示しません。
/ETA :: コピーするファイルの推定完了時刻を表示します。
/LOG:ファイル :: ログ ファイルに状態を出力します (既存のログを上書きしま
す)。
/LOG+:ファイル :: ログ ファイルに状態を出力します (既存のログ ファイルに
追加します)。
/UNILOG:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログを
上書きします)。
/UNILOG+:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログに
追加します)。
/TEE :: コンソール ウィンドウとログ ファイルに出力します。
/NJH :: ジョブ ヘッダーがありません。
/NJS :: ジョブ概要がありません。
/UNICODE :: 状態を UNICODE で出力します。
::
:: ジョブ オプション:
::
/JOB:ジョブ名 :: 名前の付いたジョブ ファイルからパラメータを取得します。
/SAVE:ジョブ名 :: 名前の付いたジョブ ファイルにパラメータを保存します。
/QUIT :: コマンド ラインの処理後に終了します (パラメータの表示の
ため)。
/NOSD :: コピー元ディレクトリを指定しません。
/NODD :: コピー先ディレクトリを指定しません。
/IF :: 後続のファイルを含みます。
--▲「robocopy /?」ここまで▲--