Skip to content

MS_Robocopy

nishi_74322014 edited this page Aug 19, 2026 · 1 revision

robocopy

概要

  • Robocopy(Robust File Copy)は、Windows に標準で含まれている強力なファイルコピー CLI。
  • 主にファイルのミラーリングやバックアップに使用され、高性能、信頼性、柔軟性を兼ね備える。

詳細

注意:コピー元、コピー先の指定を誤ると破滅的な結果を招く。

補足(この警告は誇張ではない): /MIR
コピー先をコピー元と同一にする(=コピー先の余計なものを削除する)オプションである。

robocopy C:\src D:\dst /MIR
           ↑ もし D:\dst を間違えて D:\ と書いたら…
           → D:\ にあって C:\src に無いファイルが【すべて削除される】

事故を防ぐ手順は次のとおり。

手段 内容
/L を付けて先に実行する 実際にはコピー・削除せず、対象を一覧表示するだけ
末尾の区切り文字に注意 パスの解釈が変わることがある
引用符で囲む 空白を含むパスは "..."
ログを取る /LOG:file.txt または /LOG+:file.txt(追記)

必ず /L で一度確認してから本実行する、というのを
手順に組み込むのが実務上の定石である。

ミラーリング

robocopy <コピー元フォルダ> <コピー先フォルダ> /MIR /DCOPY:DAT
  • /MIR

    /E + /PURGE
    
  • /DCOPY:DAT

    Dフラグ、Aフラグ、Tフラグもコピー
    

補足(/DCOPY:DAT の意味): robocopy は既定で
ファイルのタイムスタンプはコピーするが、
フォルダのタイムスタンプはコピーしない

/DCOPY はフォルダ側の属性を指定するオプションである。

記号 意味
D Data(フォルダのデータ)
A Attributes(属性)
T Timestamps(タイムスタンプ

/DCOPY:DAT とすることで、
フォルダの更新日時まで元と同じになる
これを付けないと、コピー先のフォルダの日付が
すべてコピー実行日時になってしまう

同様に、ファイル側の属性は /COPY で指定する。

用途 指定
既定 /COPY:DAT(データ・属性・タイムスタンプ)
ACL も含める /COPY:DATS(S = セキュリティ = NTFS の ACL)
完全なコピー /COPYALL(= /COPY:DATSOU。所有者・監査情報も)

ファイル サーバの移設では /COPYALL が必要になる
(アクセス権を引き継がないと業務が止まる)。
ただし /COPYALL にはバックアップ オペレーター権限
(または /B オプション)が要る。

バックアップ

robocopy <コピー元フォルダ> <コピー先フォルダ> /DCOPY:DAT
  • /MIR/E/PURGE を外し
    • /E
      空のディレクトリもコピーする
    • /PURGE
      コピー元に存在しないコピー先のファイル/ディレクトリを削除

補足(ミラーリングとバックアップの使い分けが本ページの要点): この 2 節の違いは
/MIR を付けるか否かだけだが、意味はまったく違う

ミラーリング/MIR バックアップ/MIR なし)
目的 コピー先を元と同一にする コピー先に積み上げる
元で削除したファイル コピー先からも消える コピー先に残る
用途 同期、レプリカ 世代を残さない簡易バックアップ
誤削除からの復旧 できない(消えたものが伝播する) できる

つまり、/MIR は「バックアップ」ではない
誤ってファイルを消した場合、次回の同期でコピー先からも消えるため、
ランサムウェアや誤操作に対する備えにならない

この区別はAzureの障害復旧で述べた
**「レプリケーションはバックアップの代わりにならない」**と
まったく同じ話である。

なお、/MIR を付けない場合、
コピー先が際限なく増えるという別の問題が生じる。
実運用では

  • 日付付きのフォルダに世代を分ける
  • 古い世代を定期的に削除する

といった仕組みを外側で用意することになる。

補足(実務で追加したいオプション): 上記に加え、
大量のファイルを扱う際に効くものを挙げておく。

オプション 効果
/L 実行せずに一覧表示(事前確認。最重要)
/R:n /W:n リトライ回数・待ち時間。既定は100 万回×30 秒(実質無限に固まる)。/R:3 /W:5 程度にする
/MT:n マルチスレッド(既定 8)。小さいファイルが大量にある場合に効く
/XD /XF 除外するディレクトリ/ファイル
/Z 再開可能モード(大きいファイル、不安定な回線)
/NP 進捗率を出さない(ログが肥大しない
/LOG: /TEE ログ出力/画面にも同時表示

特に /R/W の既定値は要注意である。
何も指定しないと、アクセスできないファイル 1 つで
100 万回 × 30 秒=実質永久に止まる

必ず /R:3 /W:5 程度を明示するのが実務上の必須事項である。

終了コードにも意味がある(0 = 差分なし、1 = コピーした、
8 以上 = エラーあり)。
バッチから使う場合、8 以上を失敗と判定する
0 以外を失敗としてはいけない)。

参考

移行メモ: 原典には Tags 行が存在しなかったため、
内容から「Windows, インフラストラクチャ, バックアップ」を付与した。


Tags: 移行, Windows, インフラストラクチャ, バックアップ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally