Robocopy копирование файлов в режиме архивирования. Где мои файлы, ROBOCOPY

03.02.2019

Себе на заметку:


Сознательные пользователи ПК наверняка умеют создавать образ жесткого диска Vista с помощью средства «Архивация всего компьютера (Complete PC Backup)» Центра архивации и восстановления (Backup and Restore Center) и регулярно пользуются средством архивации Windows (Windows Backup) для создания резервных копий важных файлов.

Тем не менее, для пущей безопасности никогда не помешает иметь в своем распоряжении дополнительную резервную копию данных. В принципе, получить ее можно простым перетаскивание папки «Документы» (Documents) на съемный жесткий диск, но делать это каждый раз вручную несколько утомительно.

К счастью, в Microsoft Windows Vista есть утилита Robocopy (Утилита входит в Windows Resource Kit), значительно облегчающая создание дополнительной резервной копии данных. Как многим наверняка известно, Robocopy входит в пакет служебных приложений Windows Resource Kit еще со времен Windows NT 4.0, но на этот раз разработчики Microsoft снабдили утилиту дополнительными функциями, предназначенными специально для Vista, и решили включить ее в состав операционной системы. То, что воспользоваться ею теперь может каждый, — просто замечательно, но есть здесь одно «но»: Robocopy — приложение с интерфейсом командной строки, и для управления его возможностями предусмотрено более восьмидесяти переключателей.

А значит, для того, чтобы использовать функции Robocopy в полной мере, придется потратить немало времени на расшифровку всех этих переключателей и выбор наиболее подходящих для поставленной задачи. Для прожженных технических специалистов это, может, и не проблема, но обычных пользователей, которым нужна всего лишь утилита для дополнительного резервного копирования, такие сложности могут отпугнуть.

Недавно я решил основательно изучить переключатели командной строки Robocopy, и в результате написал простой маленький сценарий, который можно использовать для создания точной копии всех файлов данных в папке профиля пользователя (C:\Users\Имя_пользователя).

Возможности Robocopy

Судя по названию утилиты, можно предположить, что это просто средство для копирования файлов (Robust File Copy — «надежное копирование файлов»), но на самом деле, это куда более мощное приложение со множеством замечательных функций, делающих его великолепным инструментом для создания резервных копий данных. Например, при повторном резервном копировании Robocopy копирует только те файлы, которые были изменены со времени создания последней резервной копии.

Если для резервного копирования используется ненадежное сетевое подключение, утилиту можно настроить таким образом, чтобы она дожидалась восстановления связи или возобновляла передачу файлов с того места, на котором остановилась. К тому же, Robocopy позволяет сохранить все сопутствующие данные — штампы даты и времени, списки контроля доступа системы безопасности (Access control lists, ACL) и многое другое.

Переключатели

В любой системе Windows Vista файл Robocopy.exe хранится в каталоге \Windows\System32, поэтому его можно запустить прямо из командной строки (Command Prompt). Чтобы создать текстовый файл с инструкциями к утилите, который можно будет просматривать в Блокноте (Notepad) , надо выполнить команду Robocopy /? > RobocopySwitches.txt.


Файл документации разбит на пять разделов, включающих в себя определенные категории переключателей. Этот удобно отформатированный документ, наряду с моими примерами, можно использовать для создания своего собственного сценария Robocopy. Разделы справочного файла называются:

Параметры копирования (Copy Options)

Параметры выбора файлов (File Selection Options)

Параметры повторных попыток (Retry Options)

Параметры ведения журнала (Logging Options)

Параметры задания (Job Options)

Создание сценария командной строки

Для примера я собираюсь создать сценарий резервного копирования файлов данных из папки своего профиля «C:\Users\Greg Shultz» в папку «TheBackup» на съемном жестком диске с меткой тома «J» (в своем сценарии, разумеется, надо заменить все имена и пути на свои собственные). Мой сценарий будет начинаться так:


Robocopy “C:\Users” “d:\TheBackup”


Я хочу создать копии всех папок, даже пустых, потому что они могут пригодиться для сохранения определенных типов данных в будущем. Копировать файлы, удаленные с жесткого диска, я не собираюсь. Можно было бы использовать для этого переключатели /S и /PURGE, но можно достичь поставленных целей и с помощью одного-единственного переключателя /MIR. Теперь моя команда выглядит так:


Robocopy “C:\Users” “d:\TheBackup” /MIR


В папке «C:\Users» хранятся некоторые скрытые системные файлы и папки, резервные копии которых мне совсем не нужны — например, файл NTUSER.DAT и папка AppData.

Кроме того, в папке «C:\Users» хранится целый ряд точек соединения, которые мне тоже не нужны. Точки соединения в Vista используются для связи различных системных папок (например, Cookies и SendTo) с папкой профиля пользователя.

Для исключения скрытых системных файлов я воспользуюсь переключателем /XA:SH, для исключения папки AppData — переключателем /XD AppData, а для исключения точек соединения — переключателем /XJD. Теперь мой сценарий выглядит так:


Robocopy “C:\Users” “d:\TheBackup” /MIR /XA:SH /XD AppData /XJD


Одна из особенностей Robocopy заключается в том, что когда утилита сталкивается с файлом, который используется в данный момент другой программой, она останавливается и ждет, пока файл закроют, чтобы продолжить операцию копирования. Через каждые 30 секунд Robocopy осуществляет попытку повторного копирования файла. Количество повторных попыток по умолчанию — один миллион (я не шучу)! При таком раскладе операции резервного копирования вряд ли суждено когда-нибудь завершиться, поэтому количество повторных попыток стоит ограничить каким-то разумным числом.

Для изменения количества попыток повторного копирования используется переключатель /R, а для изменения интервала между повторными попытками — переключатель /W. Я решил сократить количество повторных попыток до пяти с интервалом в 15 секунд — тогда после разумного периода ожидания Robocopy сможет нормально продолжать работу:


Robocopy “C:\Users” “d:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15


Как и все утилиты с интерфейсом командной строки, Robocopy информирует пользователя о состоянии операции прямо в окне командной строки, но куда удобнее было бы сохранять эти сведения в файле журнала. Я люблю иметь полное представление о проделанных операциях, поэтому воспользуюсь для составления журнала переключателем /V. Но вот сведения о прогрессе копирования каждого файла в процентах мне вряд ли понадобятся, поэтому я включу в сценарий переключатель /NP. Чтобы создать файл журнала, я воспользуюсь переключателем /LOG, который предусматривает замену существующего журнала новым при каждом следующем резервном копировании. Теперь мой сценарий выглядит так:


Robocopy “C:\Users” “d:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /V /NP /LOG:Backup.log


Создание своего собственного сценария

Теперь, когда вы знаете, как работают подобные сценарии и какие для этого нужны переключатели, можете открыть Блокнот, ввести команду и сохранить файл как «RobocopyBackup.cmd». Чтобы сценарий и открытый файл журнала не препятствовали процессу копирования, я создал в корневом каталоге отдельную папку «BackupTool» («C:\BackupTool») и сохранил сценарий в ней.

После каждой операции резервного копирования файл журнала будет появляться в той же папке, где хранится сценарий. Имейте в виду: несмотря на то, что журнал — это простой текстовый файл, он может оказаться слишком объемным для Блокнота, поэтому лучше открывать его в WordPad или другом текстовом процессоре.

Теперь для создания дополнительной резервной копии данных достаточно дважды щелкнуть на ярлыке файла RobocopyBackup.cmd, чтобы запустить сценарий, а по завершении работы — посмотреть файл Backup.log. При желании можно запланировать автоматическое выполнение сценария с помощью Планировщика заданий (Task Scheduler) или cron

Es gibt dazu auch eine GUI......


MKSBackup is a free front-end for common backup tools like MS Windows ntbackup , and it successor wbadmin , Un*x tools like tar , but also popular ghettoVCB to backup Virtual Machine on VMware ESX(i) host.

MKSBackup is developed in Python and is available for Microsoft Windows , Linux and other Un*x systems.

14.09.2006 Дик Льюис

Решения на основе сценариев Windows Robocopy - одна из моих любимых утилит, входящих в комплект Microsoft Windows Server 2003 Resource Kit. В новой версии этого инструмента - Robocopy XP010 появился ряд дополнительных возможностей, которых очень не хватало предыдущим версиям.

Решения на основе сценариев Windows

Robocopy - одна из моих любимых утилит, входящих в комплект Microsoft Windows Server 2003 Resource Kit. В новой версии этого инструмента - Robocopy XP010 появился ряд дополнительных возможностей, которых очень не хватало предыдущим версиям. На основе вопросов, которые задавали мне читатели, я составил список ответов на наиболее типичные из них. Этот документ можно использовать в качестве дополнительной инструкции по использованию Robocopy. Давайте начнем с вопроса, касающегося процедуры переноса данных на сетевые устройства хранения данных Network Attached Storage (NAS).

Вопрос: Я переношу значительный объем данных из системы на базе Windows 2000 Server в среду с использованием NAS. Я использую Robocopy с переключателями, которые прежде применялись для переноса с одной системы Windows на другую. Я заметил, что время копирования практически не уменьшается при проведении последующих инкрементных копирований. Что я делаю неправильно?

Ответ: Обычно после того, как будет выполнено начальное копирование с использованием Robocopy, наблюдается снижение общего времени копирования, поскольку копируются только изменения, произошедшие со времени предыдущего копирования. Объем данных, подлежащих копированию, включает вновь измененные или удаленные файлы и папки и сильно зависит от окружения.

Если данные на совместно используемом ресурсе относительно стабильны и изменения в них незначительны, время копирования снижается очень сильно, поскольку Robocopy имеет дело только с изменениями в файловой структуре. Если использование совместного ресурса достаточно активно, например там хранятся файлы почтовых ящиков пользователей (.pst), которые постоянно изменяются, сокращение времени будет незначительным, поскольку уровень относительных изменений данных достаточно велик. Особенно это влияет на минимальное время, необходимое Robocopy для сканирования состояния приемника и источника на предмет изменений в файлах.

Если заметного снижения времени копирования не наблюдается, значит, либо у вас очень динамично изменяющаяся область данных, которая порождает высокий процент изменений, либо возникли проблемы во время сравнения файлов. Robocopy почему-то считает, что имели место изменения файлов и копирует эти файлы снова, хотя фактически никаких изменений не было.

Если вашей задачей является копирование с систем Windows на устройства сетевого хранения (NAS), придется выяснить у поставщика вашего устройства NAS, поддерживает ли это устройство временные стандарты NTFS-файлов. Ключ Robocopy /FFT особенно полезен, если имеется устройство NAS, которое не поддерживает 100-наносекундную точность при определении времени создания файла в NTFS, а использует только двухсекундную точность определения времени создания файла, характерную для FAT. Округление времени создания NTFS-файла может привести к копированию файлов, которые не изменялись. Robocopy распознает эти файлы как новые либо как старые, но измененные и запускает операцию копирования.

Переключатель /FFT заставляет Robocopy использовать точность определения времени, применяемую в FAT, т. е. утилита использует двухсекундный стандарт для сравнения файлов. Пока файлы имеют одинаковые временные отметки внутри двухсекундного интервала, Robocopy считает их идентичными и не копирует. Этот переключатель значительно снизит время копирования и сократит случаи копирования файлов, которые в действительности не изменялись.

Вопрос: В нашей компании имеется офис, подключенный к центральному офису через медленный канал. Пользователи имеют слишком низкую, по сравнению с главным офисом, скорость связи с корпоративным файл-сервером. Они хотят, чтобы мы расположили в удаленном офисе доступную только для чтения копию данных с этого файлового сервера. Нам необходим сценарий, копирующий данные через медленный канал. Процесс должен идти постоянно, поскольку изменения также происходят постоянно. Могу ли я для решения этой задачи воспользоваться Robocopy?

Ответ: В Robocopy XP010 появилась возможность вести постоянный мониторинг источника на предмет внесенных изменений. Функцией мониторинга можно управлять при помощи переключателей /MON:n и /MOT:m. Переключатель /MON:n задает минимальное количество изменений, которые должны произойти, прежде чем Robocopy запустится снова. Ключ /MOT:m задает минимальное время в минутах, которое должно пройти до следующего запуска Robocopy. Более подробную информацию об использовании функции мониторинга можно найти в файле помощи Robocopy.doc на носителе с Resource kit.

Обычно работа Robocopy прекращается после проверки утилитой заданной папки-источника, путь к которой указывается в качестве параметра. Функция мониторинга переводит утилиту в режим постоянного сканирования каталога источника на предмет появившихся изменений. Можно воспользоваться этим новым свойством двумя способами. Первый способ - это ответ на ваш вопрос, организация постоянной репликации данных в удаленный офис. Второй способ - это копирование данных в новое место для подготовки к миграции, что более предпочтительно, чем запускать Robocopy периодически.

Если планируется использовать функцию мониторинга периодически, нужно иметь в виду одно обстоятельство. Если вы запускаете Robocopy с функцией Monitor из сценария, Robocopy останется запущенной и после завершения работы сценария. Чтобы решить эту проблему, я воспользовался планировщиком задач (Task Scheduler) для запуска Robocopy в режиме мониторинга. Ниже приведен пример командной строки, которую я использовал при работе с Task Scheduler.

C: obocopy.exe»SourceServer SourceShare»»DestServer DestShare»

/COPY:DAT /E /NP

/FFT /NS /NDL /MON:1 /MOT:1

/IPG:5 /PURGE/R:1 /W:1

/LOG+:C:RoboLog.txt

Убедитесь, что команда набрана в одну строку.

Если вы имеете дело с медленными каналами и получаете от Robocopy сообщения об ошибках копирования, попробуйте воспользоваться появившимся в новой версии переключателем, позволяющим регулировать интервал между пакетами Inter-Packet Gap (/IPG:n). Если использовать этот ключ со значением, равным 5, при работе на медленных линиях, то это значительно уменьшит количество ошибок копирования, связанных с временными задержками в сети. Подробная информация о ключе /IPG содержится в файле помощи Robocopy.doc.

Вопрос: Мы переносим несколько сотен совместно используемых файловых ресурсов на другой сервер. Есть опасения, что Robocopy может пропустить какой-нибудь из ресурсов на сервере-источнике и не создать его на сервере-приемнике. Как убедиться в соответствии между сервером-источником и сервером-приемником?

Ответ: Сценарий TestShareCorrespondence.bat приведенный в листинге 1 , задействует утилиту Rmtshare для сравнения совместно используемых файловых ресурсов на источнике и приемнике. Rmtshare в действительности является утилитой из состава Microsoft Windows NT 4.0 Resource Kit, которая больше не поставляется в составе наборов системных утилит. Тем не менее утилита прекрасно работает и еще доступна на FTP-сайте Microsoft по адресу: ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/rmtshare.exe .

Я тестировал сценарий TextShareCorrespondence.bat, как и другие сценарии, приведенные в этой статье, на системах с Windows XP Service Pack 1 (SP1) и Windows 2000 Server SP3. Чтобы воспользоваться сценариями в своем окружении, скопируйте входной и выходной файлы и укажите место расположения утилиты, как поясняется в заголовке сценария.

Вопрос: У нас возникали проблемы, когда пользователи создавали структуры папок, суммарная длина пути к которым превышала 256-символьное ограничение, обусловленное свойствами приложений Windows. При выполнении недавней миграции Robocopy выводила много ошибок, связанных с превышением допустимой длины пути. Когда я попытался запустить Robocopy XP010, система перестала выдавать сообщения о таких ошибках. Каким образом Robocopy XP010 работает с длинными путями к файлам?

Ответ: По умолчанию Robocopy XP010 может копировать имена файлов и папок, длина пути к которым превышает 256-символьный предел. Теоретически такое имя может состоять из 32 000 символов, при этом ошибки в журнале работы утилиты отображаться не будут. Если вы хотите, чтобы Robocopy выводила сообщения о подобных ошибках для того, чтобы вы могли видеть, где могут возникнуть проблемы, воспользуйтесь переключателем /256. Этот ключ приводит к тому, что Robocopy генерирует знакомые вам сообщения об ошибках. При этом необходимо помнить, что некоторые пользовательские приложения не могут работать с длиной пути, превышающей 256 символов. При этом длинные имена пути могут успешно пройти проверку на копирование.

Если вы планируете воспользоваться утилитой Diruse из состава набора утилит для сравнения каталогов или какой-нибудь другой утилитой для проверки успешности копирования, следует помнить, что эти инструменты также могут иметь ограничения, связанные с длиной пути. Это, в свою очередь, может привести к различным результатам при подсчете размеров каталогов на приемнике и источнике. Допустим, у вас имеется совместно используемый ресурс с именем FileServer1ShareA, который содержит только один файл. Этот файл с размером 10 Mбайт имеет имя LongFile.txt. Он расположен в структуре с глубоким вложением, а длина пути к этому файлу составляет 253 символа. Допустим, при использовании Robocopy для копирования этого файла на другой сервер добавляется еще один дополнительный уровень в путь: FileServer2ShareBOldShareA. Не задумываясь, вы тем самым увеличили длину пути на 10 символов. Robocopy успешно скопирует файл (если вы не используете ключ /256 для вывода сообщения об ошибке).

Если затем вы воспользуетесь утилитой Diruse для сравнения результатов, она не обнаружит файл размером 10 Mбайт с именем LongFile.txt на новом ресурсе, поскольку длина пути к нему превышает 256-символьный предел. Результатом этого сравнения будет отсутствие на новом месте одного файла размером 10 Мбайт.

Если у вас имеются тысячи файлов с близкой к предельной длиной пути, при небольшом изменении длины пути сотни из них превысят 256-символьный барьер. Хотя на самом деле все в порядке, вас будет беспокоить качество выполнения задачи копирования. В подобных случаях журнальный файл Robocopy не является полноценным индикатором успешности либо сбоев в копировании.

Вопрос: Я проверяю некоторые большие журнальные файлы Robocopy на наличие сообщений об ошибках. Однако значительный объем журнала сильно затрудняет работу. На какие события в журнале я должен обращать особое внимание? Какие события вызывают подобные ошибки?

Ответ: Секция результатов работы программы находится в конце журнального файла Robocopy, здесь отображается информация об ошибках. Кроме того, я обычно запускаю поиск по словам Exceeded (превышение) и ERROR в содержимом журнала. Это укажет места, где имели место ошибки копирования. Основной причиной подобных ошибок Robocopy является отсутствие необходимых прав доступа на приемнике и источнике. Если вы копируете настройки безопасности и права на структуры файлов, убедитесь, что учетная запись, от имени которой производится копирование, имеет права Full control на сервере-приемнике.

Вопрос: Нам необходимо произвести перенос нескольких сотен совместно используемых файловых ресурсов с одного сервера на другой. Можем ли мы задействовать единый сценарий для запуска Robocopy на всех ресурсах без написания индивидуальных сценариев Robocopy для каждого из ресурсов?

Ответ: Рассмотрим несколько вариантов. Если понятие сервера идентично в терминах понятию диска и имеет ту же букву в обозначении и сходное содержимое диска, вы можете копировать корень каждого из дисков вместо копирования отдельных ресурсов. Но в этом случае файлы журналов будут организованы по дискам, а не по разделяемым ресурсам.

В качестве альтернативы можно воспользоваться сценарием, который берет входное имя совместно используемого ресурса из списка и запускает Robocopy отдельно для каждого такого ресурса. Сценарий RoboCopyMigration.bat, приведенный в листинге 2 , изменяет заголовок окна командной строки так, что вы можете видеть, откуда в данный момент ведется копирование. RoboCopyMigration.bat создает файл журнала с именем, состоящим из комбинации имени разделяемого ресурса и временной отметки начала копирования. Заметьте, что в сценарии используется новый ключ Robocopy /TEE, пересылающий вывод команды как в файл журнала, так и на консоль.

Вопрос: Я не вполне доверяю журнальным файлам утилит копирования. Мне бы хотелось убедиться в том, что содержимое источника и приемника после окончания операции копирования полностью идентичны. Каким образом проще всего это сделать?

Ответ: Я рекомендую воспользоваться независимыми утилитами, осуществляющими проверку операции копирования. Имеется ряд графических утилит, выполняющих подобную функцию сравнения, например TreeSize (http://www.jam-software.com/freeware ). Если вы предпочитаете пользоваться сценариями, можно посоветовать утилиту Diruse из комплекта Resource Kit. Я обычно проверяю количество файлов и суммарный объем данных в папках источника и приемника. Если эти числа совпадают, я уверен в успехе операции копирования. Сценарий MigrationCompare.bat, приведенный в листинге 3 , создает выходной файл, в котором приводится количество скопированных файлов и суммарный размер файлов данных для каждого из скопированных совместно используемых ресурсов на источнике и приемнике.

Итак, мы рассмотрели несколько новых возможностей версии Robocopy XP010. Руководствуясь описанными сценариями, стратегиями и технологиями, вы сможете подготовиться к выполнению любых задач по переносу данных объемом от нескольких сотен мегабайтов до нескольких терабайтов.

Дик Льюис - старший системный инженер компании CKT Consulting в Калифорнии. Имеет сертификаты MCSE и MCT, специализируется на системах управления масштаба предприятия. [email protected]

Читатель сайта, Иван, прислал такой вопрос:

Добрый день, помогите мне с одним вопросом,мне нужно сделать скрипт-программу, которая делала бы резервные копии файлов, объясню подробнее. В этой программе нужно указать, с каких папок производится копирование файлов, но не всех, а обновленных за последний день, скопировать мне их нужно в расшаренную папку на другом компьютере. Мои действия были такими, пишу программу с командой robocopy, потом через планировщик задач хотел сделать постоянное исполнение. Подскажите, как правильно написать команду, я не силен в программировании, не знаю, как правльно указать сетевое имя, спасибо заранее.Иван

Что такое robocopy?

Это утилита командной строки Windows для копирования файлов из одной папки в другую. Причем, это не просто копирование, утилита выполняет репликацию. К сожалению, у меня нет опыта использования этой утилиты, но я так понимаю, что это что-то вроде rsync в unix. Это очень удобно для , например.

Примеры использования robocopy

Вообще синтаксис команды прост. Указывается исходная папка и конечная для репликации. Если копируете в сетевое хранилище — то сначала пишется имя хоста. Стандартно сетевой путь начинается с двух обратных слешей:

Robocopy C:\folder \\backupserver\backup

Можно копировать даже с одного сервера на другой:

Robocopy \\myServer\myFolder\myFile.txt \\myOtherServer\myOtherFolder

Полное описание опций утилиты

На просторах интернетов нашлась вот такая шикарная табличка, которая даёт исчерпывающую информацию по использованию утилиты:

ROBOCOPY Синтаксис

ROBOCOPY источник назначение [файл [файл]…] [Параметры]

Источник:: Исходная папка (диск:\путь или \\сервер\общий ресурс\путь).
Назначение:: Конечная папка (диск:\путь или \\сервер\общий ресурс\путь).
Файл:: Копировать файлы (имена и подстановочные знаки: по умолчанию «*.*»).

До версии Windows Vista поставлялась как часть пакета Resource Kit. Начиная с Windows Vista представлена как стандартный компонент.

Параметры копирования

/S Копировать вложенные папки, кроме пустых.
/E Копировать вложенные папки, включая пустые.
/LEV:n Копировать только верхние n уровней исходного дерева папок.
/Z Копирование файлов с возобновлением.
/B Копирование файлов в режиме архивирования.
/ZB используется режим с возобновлением; если доступ запрещен, используется режим архивации.
/EFSRAW Копирование всех зашифрованных файлов в режиме EFS RAW.
/COPY:флаги копирования что копируется для файлов (по умолчанию /COPY:DAT). (флаги копирования: D=Данные, A=Атрибуты, T=Метки времени). (S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита).
/DCOPY:T Копирование меток времени папки.
/SEC Копировать файлы с параметрами безопасности (эквивалентно /COPY:DATS).
/COPYALL Копировать все сведения о файле (эквивалентно /COPY:DATSOU).
/NOCOPY Не копировать никаких сведений о файле (удобно использовать с параметром /PURGE).
/SECFIX Исправлять параметры безопасности для всех файлов, даже пропущенных.
/TIMFIX Исправлять атрибуты времени для всех файлов, даже пропущенных.
/PURGE Удалять файлы и папки назначения, которых больше не существует в источнике.
/MIR Создать зеркало дерева папок (эквивалентно /E с /PURGE).
/MOV Перемещать файлы (удаление из источника после копирования).
/MOVE Перемещать файлы и папки (удаление из источника после копирования).
/A+: Добавлять заданные атрибуты скопированным файлам.
/A+: Удалять заданные атрибуты из скопированных файлов.
/CREATE Создать только дерево папок и файлы нулевой длины.
/FAT Создать файлы назначения только в формате 8.3 FAT.
/256 Отключить поддержку длинных путей (> 256 знаков).
/MON:n Наблюдать за источником; перезапустить после n изменений.
/MOT:m Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm Часы запуска — время, когда можно запускать новое копирование.
/PF Проверять часы запуска по файлам (не по проходам).
/IPG:n Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.

Параметры выбора файлов

/A Копировать только файлы с установленным атрибутом «Архивный».
/M Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA: Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA: Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/XF file [файл]… Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам.
/XD dirs [папки]… Исключить папки, соответствующие заданным именам и путям.
/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 — дата в формате ДДММГГГГ).
/XJ исключить точки соединения. (по умолчанию обычно включаются).
/FFT Использовать время файлов FAT (двухсекундная точность).
/DST Учитывать одночасовую разницу при переходе на летнее время.
/XJD Исключить точки соединения для папок.
/XJF Исключить точки соединения для файлов.

Параметры повторных попыток:

Параметры ведения журнала:

/L Только список — файлы не копируются, не удаляются, не помечаются метками времени.
/X Сообщать обо всех дополнительных файлах, а не только о выбраных.
/V Подробный вывод с указанием пропущенных файлов.
/TS Включать в вывод метки времени исходных файлов.
/FP Включать в вывод полные пути файлов.
/BYTES Печатать размеры в байтах.
/NS Без размера — не заносить в журнал размер файлов.
/NC Без класса — не заносить в журнал классы файлов.
/NFL Без списка файлов — не заносить в журнал имена файлов.
/NDL Без списка папок — не заносить в журнал имена папок.
/NP Без хода процесса — не отображать число скопированных % .
/ETA Показывать оценку времени окончания копирования файлов.
/LOG:файл Записывать состояние в файл журнала (перезаписывать существующий журнал).
/LOG+:файл Записывать состояние в файл журнала (добавлять к существующему журналу).
/UNILOG:файл Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+:файл Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).
/TEE Направлять выходные данные в окно консоли и в файл журнала.
/NJH Без заголовка задания.
/NJS Без сведений о задании.
/UNICODE Cостояние вывода в формате Юникод.

Параметры задания:

Заметки

Утилита robocopy («Robust File Copy» = «надежное копирование файлов») упрощает задачу резервного копирования большого количества файлов.
Она позволяет копировать только изменившиеся файлы, что дает значительное ускорение при постоянном резервном копировании. Изменение файла определяется по его дате, размеру и атрибутам.
При копировании данных с Windows систем на устройства сетевого хранения (NAS) может возникнуть ситуация, что ваш NAS не поддерживает точность времени создания файлов, принятую в NTFS (100 наносекунд). Это может привести к тому, что идентичные файлы будут квалифицированы как разные, что вызовет необходимость копирования. Параметр /FFT заставляет сравнивать метки создания файлов с двухсекундной точностью. Это может позволить избежать копирования одинаковых файлов.

Примеры

ROBOCOPY \\Server1\reports \\Server2\backup
Простое копирование

ROBOCOPY \\Server1\reports \\Server2\backup *.* /E
Копирование с поддиреториями

ROBOCOPY C:\work /MAX:33554432 /L
Список всех файлов в папке, размер которых более 32М

Графический интерфейс для robocopy

Для автоматизации, конечно, это не подходит, но оказалось что есть и такое.

А здесь кратко суть:

У традиционных функций копирования и вставки, встроенных в Microsoft® Windows® есть некоторые ограничения. Эти функции довольно хорошо подходят для решения простых задач (перемещение документа из одной директории в другую и т.д.), но им не хватает дополнительных возможностей, которые необходимы IT-специалисту в рабочей области. Например, операция копирования и вставки не предусматривает никакой возможности надежного восстановления, что позволило бы обеспечить восстановление файлов при коротком сетевом сбое. Такая схема построена на принципе “всё или ничего”, особенно при копировании целых каталогов. Посредством пользовательского интерфейса (UI) вы не можете выбрать для копирования только новые или обновленные файлы. Вы либо копируете отдельные файлы, целые каталоги, либо вообще ничего. Введение в Robocopy. Этот мощный инструмент, включенный в Microsoft Windows Server® 2003 Resource Kit Tools, включает все эти новые функции и даже больше. Robocopy обеспечивает выполнение более серьезных задач по копированию файлов, которые могут действительно облегчить вашу работу. Самым большим достоинством, как мне кажется, будет для вас возможность создания полных зеркальных копий двух файловых структур (включая все вложенные каталоги и файлы, по вашему выбору), не копируя каких-либо ненужных файлов. Будут копироваться только новые или обновленные файлы из их исходного местоположения. Robocopy также позволяет сохранять всю соответствующую информацию о файле, включая дату и время изменения, списки управления доступом (ACL) и т.п.Microsoft

Что подтверждает обозначенную в самом начале догадку, что это похоже на rsync из мира Linux. Я именно его использую для своего . Значит, можно построить аналогичный скрипт для windows на базе robocopy.

Применимо к:Windows Server 2008, Windows Server 2003 R2, Windows Server 2008 R2, Windows Server 2012 R2, Windows Server 2012

В этом разделе объясняется, как использовать средство командной строки Robocopy.exe, чтобы заполнить файлы при настройке репликации для репликации распределенной файловой системы (DFS) (также известный как DFSR или DFS-R) в Windows Server. Preseeding файлы перед настройки репликации DFS, Добавление нового партнера репликации или замены сервера, можно ускорить процесс начальной синхронизации и включить клонирования базы данных репликации DFS вWindows Server 2012 R2. Метод Robocopy является одним из способов preseeding; Общие сведения см. в разделе .

Программа командной строки Robocopy (надежный копирование файлов) входит в составWindows Server 2012 R2Windows Server 2012Windows Server 2008 R2иWindows Server 2008. Программа предоставляет расширенные возможности, включающие копирования безопасности, резервного копирования API поддержки, возможностей повторных попыток и ведения журнала. Более поздние версии поддерживают многопоточность и без буферизации ввода-вывода.

Важно

Robocopy исключительно заблокированные файлы не копируются. Если пользователи часто блокировки длительное на файловых серверах много файлов, рекомендуется использовать другой метод preseeding. Preseeding не требуется полностью соответствуют друг другу между списками файл на исходном и конечном серверах, но имеет дополнительные файлы, которые не существуют, при выполнении начальной синхронизации для репликации DFS, менее эффективным preseeding. Для минимизации конфликтов блокировок, используйте команду Robocopy во время непиковых часов для вашей организации. Всегда в журналах Robocopy после preseeding, чтобы понять, какие файлы были пропущены из-за монопольные блокировки.

Preseeding файлы для репликации DFS с помощью Robocopy включает следующие шаги:

Прежде чем использовать Robocopy, чтобы заполнить файлы, необходимо загрузить и установить последнюю версию программы Robocopy.exe. Это гарантирует, что служба репликации DFS не пропустить файлы из-за проблем в версии доставки Robocopy.

Источник для получения последней версии совместимого Robocopy зависит от версии Windows Server, на котором выполняется на сервере. Сведения о загрузке исправления с последней версией Robocopy дляWindows Server 2008 R2илиWindows Server 2008в разделестатьи 968429 в базе знаний Майкрософт.

Кроме того можно найти и установить последние исправления для операционной системы, выполнив следующие действия.

Чтобы найти и установить последнюю версию Robocopy для определенной версии Windows Server

    ВПоддержка поиска введите следующую строку, заменив <версии операционной системы > с соответствующей операционной системой и нажмите клавишу ВВОД:

    robocopy.exe kbqfe ""

    Например, введитеrobocopy.exe kbqfe «Windows Server 2008 R2» .

    Найдите и загрузите исправление с наибольшим номером идентификатора (то есть, последняя версия).

    Установите исправление на сервере.

После установки последней версии Robocopy на сервере, следует свести к минимуму вероятность, что заблокированные файлы заблокирует копирование с помощью методов в следующей таблице. Большинство приложений не исключительно блокировки файлов. Однако во время обычной работы небольшой процент от файлов может быть заблокирован на файловых серверах.

Источник блокировки

Объяснение

Устранение

Пользователи удаленного открывать файлы в общих папках.

Сотрудники подключения к серверу стандартный файл и редактировать документы, мультимедийного содержимого или других файлов. Иногда называют традиционных домашнюю папку или общих данных рабочих нагрузок.

Выполнять только операции Robocopy во время низкой нагрузки, нерабочего времени. Это минимизирует число файлов, которые необходимо пропустить Robocopy во время preseeding.

Рекомендуется временно установить доступ только для чтения к общим файловым ресурсам, которые будут реплицированы с помощью Windows PowerShellGrant-SmbShareAccess иClose-SmbSession командлетов. Если установить разрешения для общей группы, например все» и «прошедшие проверку для чтения, обычных пользователей может быть вероятность для открытия файлов с монопольной блокировкой (если их приложения определять доступ только для чтения, при открытии файлов).

Можно также принять правило брандмауэра временные для SMB-порт 445 входящих подключений к этому серверу, чтобы заблокировать доступ к файлам или использоватьBlock-SmbShareAccess командлета. Тем не менее оба метода, очень нарушает операции пользователя.

Приложения откройте локальные файлы.

Приложения рабочих нагрузок на файловый сервер иногда блокировки файлов.

Временно отключить или удалить приложения, которые блокируют файлы. Монитор процесса или Process Explorer можно использовать для определения приложений, которые блокируют файлы. Get-DfsrFileHash в Windows PowerShell илиDfsrdiag команду, чтобы проверить preseeded файлы, сравнивая хэш-код на исходном и конечном серверах. Инструкции см. в разделе .