Windows Serverで構成されたファイルサーバーを新しくすることになり
データの移行に使う良いコピーツールがないか調べてみました。
調べてみた結果、robocopyコマンド(Robust File Copy Utility)を使うことにしました。
robocopyはWindows Vista, Windows Server 2008からは標準で搭載されているコマンドです。
Windows XP, Windows Server 2003の場合は、Windows Server 2003 Resource Kit Toolsを導入すれば使用することができます。
robocopyコマンドの利点としては以下のポイントがあります。
・ファイル名のフルパスが256文字以上でもOK
フルパスで256文字以上になると、エクスプローラでコピーするとエラーメッセージが表示されてスキップされてしまいます。
ファイルサーバーのように多数のファイルを確実に移行する必要がある場合は致命的なエラーなので一番気にしていた点でしたがrobocopyコマンドは約32000文字まで対応できるそうです。
・アクセス権限をそのままコピー可能
ファイルのコピー後にアクセス権限を事細かに設定しなおすのが面倒だなと思っていたのですが、
robocopyコマンドはオプションに/COPYALLを付けることによってアクセス権限を含めた全ての属性情報をコピーできるようです。
ファイルの場合は更新日時のタイムスタンプをそのままの状態でコピーできるようです。
【使い方】
新しいサーバー上からrobocopyを実行し、古いサーバーの共有フォルダから新しいサーバーのローカルディスクにコピーする場合は次のようにします。
robocopy \\OLDSERVER\SHARE\PATH C:\SHARE\PATH /E /COPYALL
ドメインが異なる2台の間で使うと、上記のコマンドではセキュリティ情報(NTFS ACL)がコピーされない問題が発生します。(異なるドメインのメンバ サーバーの間でファイルを移行するにはローカル グループを解決することはできません。)
その場合は「/MIR」を付けるとセキュリティ情報もコピーされます。
robocopy \\OLDSERVER\SHARE\PATH C:\SHARE\PATH /E /COPYALL /MIR
さらにログを残したい場合は「/LOG:ファイルパス」を使います。MIRを指定すると進行状況がログに書き込まれて邪魔なので「/NP」で消してしまいます。
robocopy \\OLDSERVER\SHARE\PATH C:\SHARE\PATH /E /COPYALL /MIR /LOG:C:\SHARE\LOG.TXT /NP
robocopyコマンド自体は非常に多機能で、上記のようなファイルをコピーするだけのツールではなく、二つのフォルダを同期したりする機能もあり使いこなせれば強力なツールのようです。
参考にしたページはRobocopyでフォルダをコピーです。
RobocopyをGUIで操作するソフトとしては以下のようなものがあるみたいです。
・RichCopy
・Robocopy GUI
ファイル移行にrobocopyコマンドを使う
2009年03月03日(火) 23時52分
