-
Notifications
You must be signed in to change notification settings - Fork 0
MS_Robocopy
- 戻る(バックアップのいろいろ)
- robocopy
- DFS
- 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:DATDフラグ、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以外を失敗としてはいけない)。
- 「robocopy」でフォルダーをミラーリング、同期処理でコピーの手間を省く | 日経クロステック(xTECH)
https://xtech.nikkei.com/atcl/nxt/column/18/02485/060600004/ - Robocopy /MIR オプションの動作と注意点
https://n-archives.net/software/robosync/articles/robocopy-mir-option/ - Robocopy /MIR オプションの動作と注意点 - Qiita
https://qiita.com/tatsubey/items/fc3f1c33b88f142b72f0
移行メモ: 原典には Tags 行が存在しなかったため、
内容から「Windows, インフラストラクチャ, バックアップ」を付与した。
Tags: 移行, Windows, インフラストラクチャ, バックアップ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。