Robocopy を利用して差分更新されたものだけ上書きバックアップ

DOSコマンド

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

簡単に複製したいだけ /mir

2回目以降上書きされるもの(オプションつけなくても基本的な動作)

  • コピー先に存在しないファイル
  • 名前が同じでも、更新日付が異なるファイル(新しいファイルだけではなく、コピー元の方が古くてもコピー対象となる)
  • 名前と日付が同じでも、サイズが異なるファイル

完全に同期させるためには

/mir

オプションをつける。

  • コピー元フォルダとコピー先フォルダは完全に一致
  • 不足があれば新規作成される
  • 日付サイズに相違があれば上書き更新
  • コピー元から削除されたファイル・フォルダはコピー先でも削除される
robocopy コピー元 コピー先 /mir

コピー元フォルダと同じ状態になるように、コピー先フォルダへファイルがコピーされる。コピー先に不足するものがあれば新規作成されるし、日付やサイズが相違するファイルがあれば上書き更新される。さらに、コピー先に余分なファイルやフォルダがあれば、それらは削除される。

単純に差分更新されたものだけ効率的にコピーしたければ

/mir オプション

を覚えておけばOKです。

コマンド基本

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------

  開始: 2021年11月19日 16:43:58
              使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...]
                       [オプション]

           コピー元 :: コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー
                       \共有\パス)。
           コピー先 :: コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー
                       \共有\パス)。
           ファイル :: コピーするファイル (名前/ワイルドカード: 既定値は「*.*」
                       です)

ACL含め全てコピーしたい

私は、サーバを旧サーバから新サーバに移行する際に、ACL(アクセス権)を含めてサーバ間でネットワークコピー操作を行いました。ACLを完全にコピーしたい場合、robocopyはとても有用です。

コピー元と、アクセス権を含めてコピーしたい場合

/copyall	すべてのファイル情報のコピー (に相当 /copy:DATSOU)。

/copyall オプションを利用します。

実際には以下のようなバッチファイルを作成しました。

echo 開始:%date% %time% > copylog.txt

rem ACLCOPYのため
robocopy \\192.168.11.1\r$\DataFolder D:\DataFolder /R:1 /mir /copyall >> copylog.txt

echo 終了:%date% %time% >> copylog.txt
pause

解説

サーバ移行に当たり、データ量がかなり多かったので、どのくらいの時間がかかるのかを計測しながら行いました。開始時刻・終了時刻がログに記載されるようにしました。

コピー元 サーバ192.168.11.1 のRドライブにあるDataFolder

コピー先 ローカルDドライブにあるDataFolder

/R:1 コピーできなかった時に再試行する回数

/mir コピー元フォルダと同じ状態になるように、コピー先フォルダへファイルがコピーされる。コピー先に不足するものがあれば新規作成されるし、日付やサイズが相違するファイルがあれば上書き更新される。さらに、コピー先に余分なファイルやフォルダがあれば、それらは削除される。

/copyall D=データ、A=属性、T=タイムスタンプ、S=セキュリティ、O=所有者情報、U=監査情報を含めすべてコピーする

コピーオプション

::
:: コピー オプション:
::
                 /S :: サブディレクトリをコピーしますが、空のディレクトリはコピ
                       ーしません。
                 /E :: 空のディレクトリを含むサブディレクトリをコピーします。
             /LEV:n :: コピー元ディレクトリ ツリーの上位 n レベルのみをコピーし
                       ます。

                 /Z :: 再起動可能モードでファイルをコピーします。
                 /B :: バックアップ モードでファイルをコピーします。
                /ZB :: 再起動可能モードを使用します。アクセスが拒否された場合、
                       バックアップ モードを使用します。
                 /J :: バッファーなし I/O を使用してコピーします (大きなファイル
                       で推奨)。
            /EFSRAW :: 暗号化されたすべてのファイルを EFS RAW モードでコピーし
                       ます。

 /COPY:コピーフラグ :: ファイルにコピーする情報 (既定値は /COPY:DAT)。
                       (コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
                       (S= セキュリティ =NTFS ACL、O= 所有者情報、U= 監査情報)。


               /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 :: 対象ではなくシンボリック リンクをコピーします。

            /MT[:n] :: n 個のスレッドのマルチスレッド コピーを実行します
                       (既定値 8)。
                       n は 1 から 128 までの値である必要があります。
                       このオプションは、/IPG および /EFSRAW オプションと互換性
                       がありません。
                       パフォーマンスの向上のため、/LOG オプションを使用して出力
                       をリダイレクトします。

/DCOPY:コピーフラグ :: ディレクトリにコピーする情報 (既定値は /DCOPY:DA)。
                       (コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。

           /NODCOPY :: ディレクトリ情報をコピーしません (既定では /DCOPY:DA が
                       実行されます)。

         /NOOFFLOAD :: Windows のオフロードをコピーするメカニズムを使用せずに、
                       ファイルをコピーします。
タイトルとURLをコピーしました