Linuxを含むUNIX環境において、お手軽バックアップツールとしてRSYNCをよく利用します。Windowsでも同様のツールがないのかなぁと探してみたらありました。その名もrobocopy。以下のサイトからダウンロード可能です。
http://www.microsoft.com/download/en/details.aspx?id=17657
■使用方法
robocopy コピー元 コピー先 [オプション] |
引数 | 説明 |
コピー元 | コピー元ディレクトリ ( ドライブ:\パスまたは\\サーバ\共有\パス |
コピー先 | コピー先ディレクトリ ( ドライブ:\パスまたは\\サーバ\共有\パス |
例として、次のコマンドは二つのフォルダをアクセス権も含めて完全同期を行います。ただし、コピー元ファイルがコピー先のファイルより新しい場合はコピーしません。
robocopy \\remote\public \\local\public /XO /MIR /R:2 /W:5 /COPY:DAST |
■オプション一覧
次の表はRobocopyで使用できるコマンドラインオプションの一部です。
オプション | 機能 |
/S | サブディレクトリをコピーする(空のものを除く) |
/E | サブディレクトリをコピーする(空のものを含む) |
/XC | Changedに分類されたファイルをコピーしない |
/XN | Newerに分類されたファイルをコピーしない |
/XO | Olderに分類されたファイルをコピーしない |
/MOVE | ファイルとディレクトリを移動する。 |
/PURGE | 転送元にないファイルとディレクトリを転送先で削除する。 |
/MIR | /Eと/PURGEと同義。ディレクトリツリーをミラーリングする。 |
/NFL | コピーが成功したファイル名を表示しないようにします。 ただし、エラーが発生した際は表示されます。 |
/NDL | ディレクトリ名が表示されないようになり、 ファイルのフルパス名が表示されます。 |
/NP | (% copy)という進捗を表示しないようにします。 |
/LOG:file | ログを指定したファイルに出力します。 |
/COPY:copyflags | copyflagsで指定されたファイル情報をコピーします。 copyflagsは次のフラグの組み合わせですD – ファイルのデータ S – セキュリティ情報(NTFSのACL) A – ファイルの属性 O – 所有者情報 T – タイムスタンプ U – 監査情報 セキュリティ情報、所有者情報、監査情報をコピーするには |
/R:n | コピーに失敗した際のリトライ回数です。 0を指定するとリトライしません。 |
/W:n | リトライの時間間隔を指定します。 |
その他にも多数のオプションが用意されており、必要に応じて使い分けることが可能です。
■注意点
Linuxでrsyncを使う場合、rootで実行すればまずアクセス権でエラーがおきることはありませんが、Windowsのrobocopyの場合、アクセス権エラーが発生することが多々あります。実行する際には以下のようにすればうまくいきました。(他にいい方法があれば教えてください)
1. ドメインアカウントを作る。ここではFileServer。
(ちなみにコピー元/コピー先サーバは同一ドメインです)
2. コピー元/コピー先サーバのAdministratorsグループにFileServerアカウントを追加する。
3. コピー先サーバにFileServerアカウントでドメインログインする。
4. robocopyを実行する。
その他、FSMTやRichCopyなども試してみましたが、アクセス権移行のオプションを入れていおいても移行されなかったり、FSMTはそもそも起動しなかったりと最終的な結論としてはRobocopyが一番使いやすく、バッチ化すれば自動バックアップも可能なのでオススメです。