はじめに
robocopyによるファイル移行を行う場合のコマンドをまとめておきます。
※Windows Server同士で移行を行う場合を想定しています
- 移行元OS:Windows Server 2008 R2
- 移行先OS:Windows Server 2016 Standard
移行方法
@echo off
rem "robocopy "コピー元" "コピー先" オプションとなります。"
robocopy "\(コピー元のIPアドレス)\(移行したいフォルダ名 or ファイル名)" "(コピー先のドライブ名):\(移行後のフォルダ名 or ファイル名)" /L /B /COPY:DATSOU /DCOPY:AT /MIR /R:1 /W:1 /NP /V /LOG+:"c:\work\robocopy作業%DATE:/=%.log"
/L⇒検証モードで実行する
(実際のデータコピーは行われず、ログのみ出力される)
/B⇒バックアップモードで実行する
(アクセス権がないデータも移行されるようになる)
/COPY:DATSOU⇒COPYALLと同じオプション
D:ファイルデータ
(ドライブ内に存在するファイル・フォルダのこと)
A:属性
(読み取り専用や隠しファイルといった属性のこと)
T:タイムスタンプ
(ファイルのタイムスタンプ情報のこと)
S:セキュリティ情報
(ファイル・フォルダのユーザ別アクセス権情報こと)
O:所有者情報
(ファイル・フォルダにある所有者情報のこと)
U:監査情報
(ファイル・フォルダの監査設定のこと)
/DCOPY:AT⇒拡張ファイル属性、タイムスタンプをコピーする
/MIR⇒ミラーリングを行う
(コピー元とコピー先のファイル数とデータを同じ状態にする)
/R⇒リトライ回数を指定
/W⇒リトライまでの待機時間
フォルダ/ファイル数を新旧サーバ間で比較したい場合
コマンドプロンプトより以下のコマンドを実行します。
dir /s /a-d >> C:\disk_%DATE:/=%.log
移行を行ったドライブの直下にチェンジディレクトリをしてから上記コマンドを実行します
例)Dドライブを移行した場合は「d:」でDドライブに移動後に上記コマンドを実行する
取得したファイルをWinMergeで比較すれば使用領域とファイル数が一致する
※まれに一致しない場合もあるため、あくまで参考程度でお願いします
最後に
今回のサンプルコマンドは検証モードで動作します。
そのまま実行してもデータコピーは行われません。
実際に使用する場合は検証モードで問題ないことを確認した後に、
「/L」オプションを外して実行をお願いします。
コメント