最初は"xcopy"コマンドを考えました。
たとえば
xcopy c:\usr z:\usr\ /D /S /E /H /C /Y /R
xcopy [コピー元] [コピー先]
で、/Dで新しいファイルのみ
/S /Eで、空のものも含めてサブフォルダーもコピー
/Hで、隠しファイルもコピー
/Cで、エラーを無視してコピー
/Yで、無条件上書き
/Rで、読み取り専用ファイルもコピー
といった具合。
手軽は手軽ですが、コピー元でいらなくなったから削除しても、コピー先には残ったままとなってしまいます。
じゃぁ、コピーする前に、コピー先を全て削除してから・・・なんてことも考えられますが、/Dスイッチの意味がなくなってしまいます。
xcopyではなく、ミラーリングできないかなぁ・・・・。
と探していて、みつけたのが、ROBOCOPY。
これは、Vistaや7 では標準搭載(ということは、2008サーバーもか?)
XPや、2003サーバーでは、マイクロソフトのページでリソースキットを入手し、インストールすることで使えます。
2003サーバーのリソースキット
では、このROBOCOPYとはなんぞや。
簡単に言うと、簡単にミラーリングするコマンド。
ミラーリングとは同期のことで、コピー元を削除したら、コピー先も削除してくれる。
ようは、コピー元とコピー先で同じものができるというもの。
これは使える!
ということで、マイクロソフトのページから2003サーバーのリソースキットを入手し、インストールしました。
英語ですが、かまわずインストール。
で、一番簡単な使い方
robocopy c:\user z:\user /mir
/mir スイッチがミラーリング(同期)の意味です。
あとは用途に応じてスイッチを増やすだけ。
スイッチの数が多いので、どうすれば?と思いますが、
robocopy c:\user z:\user /mir /XO /R0 /ZB
としました。
/XO は古いファイルは除外。
/R0 は再試行の回数。再試行はしません
/ZB は再起動可能モードを使用します。アクセスが拒否された場合、 バックアップ モードを使用します。
というもの、ユーザープロファイルをバックアップする場合は/ZBスイッチが有効なようです。
あとはタスクに指定した時間に実行するだけ。
バックアップ先は共有フォルダでもOK。
古いサーバーを置いてそこにすることもできます。
robocopy c:\user \\saver02\user /mir /XO /R0 /ZB
という具合。
各ユーザー端末のユーザープロファイルを移動ユーザープロファイルにして、サーバー内にユーザープロファイルを置き、それをバックアップするということもできます。
その際、バックアップされたユーザープロファイルはバックアップモードでの動作になるので、バックアップ先で覗かれる可能性がありますので、バックアップ先の共有フォルダのセキュリティ(アクセス権限)には気を付けてくださいね。
robocopy h? で出てきたコマンド、スイッチの一覧をここで表示しておきます。
参考にしてください。
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
使用法:: ROBOCOPY コピー元 コピー先 [ファイル [ファイル]...] [オプション]
コピー元 :: コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー\共有\パス)。
コピー先 :: コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー \共有\パス)。
ファイル :: コピーするファイル (名前/ワイルドカード: 既定値は「*.*」です)
::
:: コピー オプション:
::
/S :: サブディレクトリをコピーしますが、空のディレクトリはコピーしません。
/E :: 空のディレクトリを含むサブディレクトリをコピーします。
/LEV:n :: コピー元ディレクトリ ツリーの上位 n レベルのみをコピーし ます。
/Z :: 再起動可能モードでファイルをコピーします。
/B :: バックアップ モードでファイルをコピーします。
/ZB :: 再起動可能モードを使用します。アクセスが拒否された場合、バックアップ モードを使用します。
/EFSRAW :: 暗号化されたすべてのファイルを EFS RAW モードでコピーし ます。
/COPY:コピーフラグ :: ファイルにコピーする情報 (既定値は /COPY:DAT)。
(コピーフラグ: D= データ、A= 属性、T= タイムスタンプ)。
(S= セキュリティ =NTFS ACL、O= 所有者情報、U= 監査情報)
/DCOPY:T :: ディレクトリ タイムスタンプをコピーします。
/SEC :: セキュリティと共にファイルをコピーします (/COPY:DATS と 同等)。
/COPYALL :: ファイル情報をすべてコピーします (/COPY:DATSOU と同等)。
/NOCOPY :: ファイル情報をコピーしません (/PURGE と共に使用すると便 利)
/SECFIX :: スキップしたファイルも含むすべてのファイルのファイル セキュリティを修正します。
/TIMFIX :: スキップしたファイルも含むすべてのファイルのファイル時刻を修正します。
/PURGE :: 既にコピー元に存在しないコピー先のファイル/ディレクトリを削除します。
/MIR :: ディレクトリ ツリーをミラー化します (/E および /PURGE と 同等)
/MOV :: ファイルを移動します (コピー後にコピー元から削除)。
/MOVE :: ファイルとディレクトリを移動します (コピー後にコピー元から削除)。
/A+:[RASHCNET] :: コピーされたファイルに指定の属性を追加します。
/A-:[RASHCNET] :: コピーされたファイルから指定の属性を削除します。
/CREATE :: ディレクトリ ツリーと長さ 0 のファイルのみを作成します。
/FAT :: 8.3 FAT ファイル名のみを使用してコピー先ファイルを作成します。
/256 :: 256 文字を超える非常に長いパスのサポートをオフにします。
/MON:n :: コピー元を監視し、n 回を超える変更があった場合に再度実行 します。
/MOT:m :: コピー元を監視し、変更があった場合 m 分間再度実行します。
/RH:hhmm-hhmm :: 実行時間 - 新しいコピーを開始できる時刻です。
/PF :: 実行時間をファイルごと (パスごとではない) に確認します。
/IPG:n :: 低速回線で帯域幅を解放するためのパケット間ギャップ (ミリ秒) 。
/SL :: 対象ではなくシンボリック リンクをコピーします。
/MT[:n] :: n 個のスレッドのマルチスレッド コピーを実行します (既定値 8)。
n は 1 から 128 までの値である必要があります。
このオプションは、/IPG および /EFSRAW オプションと互換性
がありません。
パフォーマンスの向上のため、/LOG オプションを使用して出力
をリダイレクトします。
::
:: ファイル選択オプション:
::
/A :: アーカイブ属性が設定されているファイルのみをコピーします。
/M :: アーカイブ属性のあるファイルのみをコピーし、リセットします。
/IA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルのみを含みます。
/XA:[RASHCNETO] :: 指定されたいずれかの属性が設定されているファイルを除外します。
/XF ファイル [ファイル]... :: 指定された名前/パス/ワイルドカードに一致するファイルを除外します。
/XD ディレクトリ [ディレクトリ]... :: 指定された名前/パスに一致するディレクトリを除外します。
/XC :: 変更されたファイルを除外します。
/XN :: 新しいファイルを除外します。
/XO :: 古いファイルを除外します。
/XX :: コピー先にだけ存在するファイルとディレクトリを除外し ます。
/XL :: コピー元にだけ存在するファイルとディレクトリを除外します。
/IS :: 同一ファイルを含みます。
/IT :: 異常なファイルを含めます。
/MAX:n :: 最大ファイル サイズ - n バイトより大きいファイルを除外します。
/MIN:n :: 最小ファイル サイズ - n バイトより小さいファイルを除外します。
/MAXAGE:n :: 最長ファイル有効期間 - n 日より古いファイルを除外します。
/MINAGE:n :: 最短ファイル有効期間 - n 日より新しいファイルを除外します。
/MAXLAD:n :: 最大最終アクセス日 - n で指定する値以後に使用していない ファイルを除外します。
/MINLAD:n :: 最小最終アクセス日 - n で指定する値以後に使用されたファイルを除外します。
(n < 1900 の場合、n = n 日です。それ以外は、n = YYYYMMDD の日付です)。
/XJ :: 接合ポイントを除外します (通常、既定で含まれます)。
/FFT :: FAT ファイル時間 (2 秒の粒度) を仮定します。
/DST :: 1 時間の DST 時間差を補正します。
/XJD :: ディレクトリの接合ポイントを除外します。
/XJF :: ファイルの接合ポイントを除外します。
::
:: 再試行オプション:
::
/R:n :: 失敗したコピーに対する再試行数: 既定値は 1,000,000。
/W:n :: 再試行と再試行の間の待機時間: 既定値は、30 秒です。
/REG :: /既定の設定としてレジストリに R:n と /W:n を保存します。
/TBD :: 共有名が定義されるのを待ちます (再試行エラー 67)。
::
:: ログ オプション:
::
/L :: リストのみ - いずれのファイルにも、コピー、タイムスタン
プの追加、または削除を実施しません。
/X :: 選択されたファイルのみではなく、余分なファイルをすべて報
告します。
/V :: スキップされたファイルを示す詳細出力を作成します。
/TS :: 出力にコピー元ファイルのタイム スタンプを含めます。
/FP :: 出力にファイルの完全なパス名を含めます。
/BYTES :: サイズをバイトで出力します。
/NS :: サイズなし - ファイル サイズをログに記録しません。
/NC :: クラスなし - ファイル クラスをログに記録しません。
/NFL :: ファイル リストなし - ファイル名をログに記録しません。
/NDL :: ディレクトリなし - ディレクトリ名をログに記録しません。
/NP :: 進行状況なし - コピーの完了率を表示しません。
/ETA :: コピーするファイルの推定完了時刻を表示します。
/LOG:ファイル :: ログ ファイルに状態を出力します (既存のログを上書きしま
す)。
/LOG+:ファイル :: ログ ファイルに状態を出力します (既存のログ ファイルに
追加します)。
/UNILOG:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログを
上書きします)。
/UNILOG+:ファイル :: ログ ファイルに UNICODE で状態を出力します (既存のログに
追加します)。
/TEE :: コンソール ウィンドウとログ ファイルに出力します。
/NJH :: ジョブ ヘッダーがありません。
/NJS :: ジョブ概要がありません。
/UNICODE :: 状態を UNICODE で出力します。
::
:: ジョブ オプション:
::
/JOB:ジョブ名 :: 名前の付いたジョブ ファイルからパラメーターを取得します。
/SAVE:ジョブ名 :: 名前の付いたジョブ ファイルにパラメーターを保存します。
/QUIT :: コマンド ラインの処理後に終了します (パラメーターの表示の
ため)。
/NOSD :: コピー元ディレクトリを指定しません。
/NODD :: コピー先ディレクトリを指定しません。
/IF :: 後続のファイルを含みます。
PR