web-dev-qa-db-ja.com

Robocopy-新しいファイルのみをバックアップします

ニュースフォルダが毎日作成されるネットワークドライブにアクセスできます。このドライブの名前はGです。

G:\からD:\ WebUploadまでのすべてのフォルダをバックアップしたい

ファイルが多いので、最新のものだけをコピーしたいと思います。最新とは、G:からD:にまだバックアップされていないファイルを意味します。

このスクリプトを作成しました

robocopy  G:\ D:\WebUpload\ /E  /XO /R:3 /W:5 /XA:S /XF *.tmp *.bak /TEE /XD $RECYCLE.BIN "System Volume Information"

ただし、このスクリプトはコンテンツ全体を毎回コピーします。

編集

スクリプトを編集して/ FFTを追加しました

robocopy  G:\ D:\WebUpload\ /E  /FFT /XO /R:3 /W:5 /XA:S  /TEE /XD $RECYCLE.BIN "System Volume Information"

REM Source to Dest
REM /E Subfolder
REM /XO Exclude old files
REM /R Retry x times
REM /W sec between each retry
REM /TEE Display in the command Prompt
REM /XD Exclude [][]

20150304103_8という名前のフォルダーがG:\とD:\ WebUploadの両方の場所に存在することがわかります。

enter image description here

ただし、スクリプトはこのフォルダー内の各ファイルを分析します。 1秒/ファイルかかり、いくつかのフォルダに1000を超えるファイルがあります...長すぎます

enter image description here

1
Atnaize

タイムスタンプの比較を緩和するには、おそらく/FFTが必要です。

編集-各ファイルシステムは、特定の精度でタイムスタンプを保存します。 NTFSの精度は、作成されたタイムスタンプと変更されたタイムスタンプの両方で1/10マイクロ秒です。 FATにはそれぞれ10ミリ秒と2秒があります[1]。したがって、NTFSからFATにコピーする場合、タイムスタンプは切り上げられ、次回の実行時にsrcとdstの間で比較したときにタイムスタンプが一致しないため、ファイルが再コピーされます。 /FFTが行うのは、タイムスタンプを比較するときにrobocopyにFAT精度を使用させることだけで、より緩くなります。

[1] https://msdn.Microsoft.com/en-us/library/windows/desktop/ms724290%28v=vs.85%29.aspx

1
Angstrom