Для синхронизации папок удобно применять бесплатную утилиту от Microsoft - Robocopy. Начиная с версии Vista, Robocopy входит в комплект Microsoft Windows.
Она удобна тем, что помимо ключей командной строки имеет и графический интерфейс, в котором можно визуально выбрать опции копирования и сохранить их в виде скрипта cmd.
По умолчанию Robocopy не копирует одинаковые файлы, что позволяет экономить и время, и траффик.
Так, чтобы создать зеркальную копию каталога C:\A в каталоге \\backupserver\B на сетевом ресурсе и удалить из каталога B все отсутствующие в каталоге C:\A файлы (/MIR) при этом использовать журнал возобновления (/Z) на случай потери сетевого соединения нужно использовать следующий синтаксис:
То же самое, при этом еще и исключив из синхронизации несколько папок, можно сделать с другими ключами:
Код: Выделить всё
robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"
Или то же самое, но, не копируя файлы, которые в целевой папке новее, чем в исходной:
Код: Выделить всё
robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /XO /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"
Если копирование происходит с систем Windows на устройства сетевого хранения (NAS), которое может не поддерживать временные стандарты NTFS-файлов, то к команде нужно добавит ключ /FFT . Этот ключ особенно полезен, когда устройство NAS, не поддерживает 100-наносекундную точность при определении времени создания файла в NTFS, а использует только двухсекундную точность определения времени создания файла, характерную для FAT. Округление времени создания NTFS-файла может привести к копированию файлов, которые не изменялись. Robocopy распознает эти файлы как новые либо как старые, но измененные и запускает операцию копирования.
Переключатель /FFT заставляет Robocopy использовать точность определения времени, применяемую в FAT, т. е. утилита использует двухсекундный стандарт для сравнения файлов. Пока файлы имеют одинаковые временные отметки внутри двухсекундного интервала, Robocopy считает их идентичными и не копирует. Этот переключатель значительно снизит время копирования и сократит случаи копирования файлов, которые в действительности не изменялись:
Код: Выделить всё
robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /FFT /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"
Если Robocopy не может скопировать файл (например, если он занят), то он будет повторять свои попытки 1 000 000 (один миллион) раз (параметр /R), с паузой в 30 секунд (параметр /W). Фактически, это может привести к зависанию всего скрипта. Поэтому желательно выставлять эти параметры вручную:
Код: Выделить всё
robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /FFT /R:2 /W:5 /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"
Если в путях присутствуют символы кириллицы, помним о том, что их нужно писать в правильной кодировке.
Документацию по Robocopy 1.95 читаем здесь:
Для синхронизации папок удобно применять бесплатную утилиту от Microsoft - [url=https://technet.microsoft.com/ru-ru/library/2006.11.utilityspotlight.aspx]Robocopy[/url]. Начиная с версии Vista, Robocopy входит в комплект Microsoft Windows.
Она удобна тем, что помимо ключей командной строки имеет и графический интерфейс, в котором можно визуально выбрать опции копирования и сохранить их в виде скрипта cmd.
По умолчанию Robocopy [size=130][b]не копирует одинаковые файлы[/b][/size], что позволяет экономить и время, и траффик.
Так, чтобы создать зеркальную копию каталога [b][i]C:\A[/i][/b] в каталоге [b][i]\\backupserver\B[/i][/b] на сетевом ресурсе и удалить из каталога [b][i]B[/i][/b] все отсутствующие в каталоге [b][i]C:\A[/i][/b] файлы ([i]/MIR[/i]) при этом использовать журнал возобновления ([i]/Z[/i]) на случай потери сетевого соединения нужно использовать следующий синтаксис:
[code]robocopy C:\A \\backupserver\B /MIR /Z[/code]
То же самое, при этом еще и исключив из синхронизации несколько папок, можно сделать с другими ключами:
[code]robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"[/code]
Или то же самое, но, не копируя файлы, которые в целевой папке новее, чем в исходной:[code]robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /XO /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"[/code]
Если копирование происходит с систем Windows на устройства сетевого хранения (NAS), которое может не поддерживать временные стандарты NTFS-файлов, то к команде нужно добавит ключ [b][i]/FFT[/i][/b] . Этот ключ особенно полезен, когда устройство NAS, не поддерживает 100-наносекундную точность при определении времени создания файла в NTFS, а использует только двухсекундную точность определения времени создания файла, характерную для FAT. Округление времени создания NTFS-файла может привести к копированию файлов, которые не изменялись. Robocopy распознает эти файлы как новые либо как старые, но измененные и запускает операцию копирования.
Переключатель [i]/FFT[/i] заставляет Robocopy использовать точность определения времени, применяемую в FAT, т. е. утилита использует двухсекундный стандарт для сравнения файлов. Пока файлы имеют одинаковые временные отметки внутри двухсекундного интервала, Robocopy считает их идентичными и не копирует. Этот переключатель значительно снизит время копирования и сократит случаи копирования файлов, которые в действительности не изменялись: [code]robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /FFT /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"[/code]
Если Robocopy не может скопировать файл (например, если он занят), то он будет повторять свои попытки 1 000 000 (один миллион) раз (параметр [b][i]/R[/i][/b]), с паузой в 30 секунд (параметр [b][i]/W[/i][/b]). Фактически, это может привести к зависанию всего скрипта. Поэтому желательно выставлять эти параметры вручную:[code]robocopy C:\A \\backupserver\B /E /Z /PURGE /DCOPY:T /FFT /R:2 /W:5 /XD "C:\A\Exclusion1" "C:\A\Soft\Dit\Exclusion2" "C:\A\Exclusion 3"[/code]
[i]Если в путях присутствуют символы кириллицы, помним о том, что их нужно писать в правильной кодировке.[/i]
Документацию по Robocopy 1.95 читаем здесь:[attachment=0]ROBOCOPY-Version-1.95.rar[/attachment]