Robocopyを使い、ネットワーク上のフォルダ2箇所の差分を取得する方法をまとめました。
今回、ネットワークフォルダの差分を取得したかったわけ
Buffalo LinkStationに共有フォルダを作成して運用しています。
そのLinkStationにUSB DISKを接続して上書きバックアップ(増分バックアップ)を毎日おこなっています。
ちなみに、増分バックアップというのは、バックアップ先(USB DISK)のデータが削除されずに、増え続けていきます。
*一般的に使われる増分バックアップとは意味が異なります。
- メリットは、バックアップ元(LinkStation)で誤ってデータが削除されてしまっても、必ずバックアップ先(USB DISK)にデータが存在すること。
- デメリットは、バックアップ先(USB DISK)内のデータは、手動で削除されない限り無限に増え続けていくこと。
つまり、どこかのタイミングでファイルを削除する必要があるのです。
バックアップ先のデータを全部消去して、バックアップを取り直してしまえば話は早いのですが
あとになって
おととい間違えてファイルを削除しちゃったんだけど戻せるよね?
なんて言われても後の祭り!戻せなくなってしまうのが恐ろしい
実際にそういう痛い目にあったので。。
そこで、バックアップ元(LinkStation)とバックアップ先(USB DISK)の差分情報を取得する。
差分情報を元に、ファイル日付を確認しながらバックアップ先の余分なアイテムを手動で削除する必要がありました。
Robocopy で ネットワークフォルダの差分(余分なフォルダとファイル)情報を取得する方法
手順
1.コマンドプロンプトを管理者として実行します。
2.net useコマンドを使用して共有フォルダに接続します。
(サンプル)
1 |
net use ¥¥server01¥共有 /user:server01¥Admin 01234 |
3.Robocopyコマンドを実行します。
(サンプル)
1 |
robocopy ¥¥server01¥共有 ¥¥server01¥usbdisk1¥_backups¥共有 /L /E /XO /Z /R:0 /FFT /TS /LOG:C:¥temp¥diff.log |
オプションについて
オプションの意味 | 説明 |
---|---|
/L | リストのみ。いずれのファイルにも、コピー-、タイムスタンプの追加、または削除を実施しません。 |
/E | 空のディレクトリを含むサブディレクトリをコピーします。 |
/XO | 古いファイルを除外します。 |
/Z | 再起動可能モードでファイルをコピーします。 |
/R:0 | 失敗したコピーに対するリトライを行わない。 |
/FFT | FATファイル時間(2秒の粒度)を仮定します。 |
/TS | 出力にコピー元ファイルのタイムスタンプを含めます。 |
/LOG | ログファイルに状態を出力します(既存のログを上書きします。) |
Robocopyサンプルの解説
まず、Lオプションを指定しているため、実際のファイルに対して変更(または削除)は行われません。
仮に実行したらどうなるだろう、といったシュミレーションを行い、結果を表示します。
また、NAS製品を使用しているため、FFTオプションを指定しています。
実行すると、コピー元とコピー先を比較して、コピー先にだけ存在する余分なフォルダとファイルを洗い出すことができます。
ただし、ログ上は他のいろいろな情報も一緒に存在してしまうため、この後に説明する方法でログから必要な情報だけを洗い出す作業が必要です。
実行結果
表示される結果から、以下のキーワードを探します。
Extra Dir → バックアップ先(USB DISK)に存在する余分なディレクトリ
Extra File → バックアップ先(USB DISK)に存在する余分なファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
------------------------------------------------------------------------------- ROBOCOPY :: Windows の堅牢性の高いファイル コピー ------------------------------------------------------------------------------- 開始: 2015年8月3日 19:06:01 コピー元 : ¥¥server01¥共有¥ コピー先 : ¥¥server01¥usbdisk1¥_backups¥共有¥ ファイル: *.* オプション: *.* /FFT /TS /L /S /E /DCOPY:DA /COPY:DAT /Z /XO /R:0 /W:30 ------------------------------------------------------------------------------ 451 ¥¥server01¥共有¥ *EXTRA Dir -1 ¥¥server01¥usbdisk1¥_backups¥共有¥test1¥ *EXTRA Dir -1 ¥¥server01¥usbdisk1¥_backups¥共有¥test2¥ *EXTRA File 4346 2014/02/12 15:23:37 backuplog_201402130015.txt *EXTRA File 2068 2014/02/13 15:38:29 backuplog_201402140015.txt 新しいファイル 379 2015/08/02 15:26:15 backuplog_201508030015.txt ------------------------------------------------------------------------------ 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 556 0 0 0 0 25 ファイル: 5383 1 5382 0 0 158 バイト: 473.33 m 379 473.33 m 0 0 16.84 m 時刻: 0:04:39 0:00:00 0:00:00 0:04:39 終了: 2015年8月3日 19:06:10 |
~おわり~