オルタナティブ・ブログ > 破壊的イノベーションでキャズム越え >

国境なきオープンイノベーション(C&D)で、世界のソフトを日本で仕上げて世界で売り抜く!

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」が起動していることが確認できます。

--

■関連情報

 --▼「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 /?」ここまで▲--

Comment(0)