Команда robocopy исчерпала память выход

Обновлено: 03.07.2024

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+:[RASHCNET] Добавлять заданные атрибуты скопированным файлам.
/A+:[RASHCNET] Удалять заданные атрибуты из скопированных файлов.
/CREATE Создать только дерево папок и файлы нулевой длины.
/FAT Создать файлы назначения только в формате 8.3 FAT.
/256 Отключить поддержку длинных путей ( > 256 знаков).
/MON:n Наблюдать за источником; перезапустить после n изменений.
/MOT:m Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm Часы запуска - время, когда можно запускать новое копирование.
/PF Проверять часы запуска по файлам (не по проходам).
/IPG:n Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.

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

/A Копировать только файлы с установленным атрибутом "Архивный".
/M Копировать только файлы с атрибутом "Архивный" и сбросить его.
/IA:[RASHCNETO] Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA:[RASHCNETO] Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/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 Исключить точки соединения для файлов.

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

/R:n число повторных попыток для неудавшихся копий: по умолчанию - 1 миллион.
/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:файл Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+:файл Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).
/TEE Направлять выходные данные в окно консоли и в файл журнала.
/NJH Без заголовка задания.
/NJS Без сведений о задании.
/UNICODE Cостояние вывода в формате Юникод.

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

/JOB:имя_задания Взять параметры из указанного файла задания.
/SAVE:имя_задания Сохранить параметры в указанный файл задания
/QUIT Выйти после обработки командной строки (для просмотра параметров).
/NOSD Не указывается исходная папка.
/NODD Не указывается папка назначения.
/IF Включить следующие файлы.

Заметки

Утилита 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М


Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь

date

25.11.2020

directory

Windows 10, Утилиты

comments

комментариев 8

Robocopy – это консольная утилита Windows для копирования файлов, которую можно использовать для синхронизации/репликации файлов и каталогов, и в сценариях резервного копирования. Robocopy (Robust File Copy) доступна начиная с Windows NT 4.0 Resource Kit, но по умолчанию эта функция появилась только в Windows Vista и Windows Server 2008. Robocopy заменяет Xcopy и copy, как более функциональная.

Основные возможности Robocopy

Кроме обычного копирования файлов и папок из папки источника в каталог назначения, в Robocopy есть множество очень полезных функций:

  • Устойчивость к обрывам сети (robocopy может продолжить копирования после восстановления сетевого доступа);
  • Корректное копирование файлов с их атрибутами и NTFS правами доступа;
  • Копирование с сохранением исходной временной метки;
  • Возможность копирования файлов и директорий, запрещенных для доступа даже администратору, с помощью ключа /B (ключ позволяет игнорировать проверку прав доступа, ключ доступен только для участников группы Администраторы или Операторы архива);
  • Возможность задать количество попыток копирования файла, если файл недоступен;
  • Режим полного зеркалирования директорий;
  • Пропуск уже существующих файлов (с одинаковым размером или временной меткой timestamp);
  • Индикатор прогресса копирования;
  • Корректная работа с длинными путями (более 260 символов);
  • Эффективные алгоритмы и многопоточность позволяют выполнять копирование файлов намного быстрее, чем обычное копирование средствами Windows;

Официальной графической версии robocopy (c GUI) от Microsoft нет. Существуют пользовательские версии, но их поддержка прекращена. Список неофициальных GUI для robocopy (это сторонние программы):

Синтаксис и параметры robocopy

Синтаксис robocopy состоит из двух обязательных параметров (исходный и целевой каталог) и двух необязательных (фильтр файлов и параметры):

robocopy <source> <dest> [фильтр файлов] [параметры]

Поддерживаются как локальные пути, так и UNC, например, \\server\directory

Полный синтаксис утилиты robocopy (все параметры и их описания) доступны по команде:

использование утилиты robocopy в windows для копирование и синхронизации файлов и каталогов

Исполняемы файл robocopy.exe находится в каталоге C:\Windows\System32.

Поскольку ключей в robocopy много, мы будем рассматривать их на практике, в готовых командах. Мы не будем рассматривать самые простые примеры использования robocopy, т.к. обычно они не вызывают вопросов. Ниже представлены готовые к применению более сложные команды robocopy, которые можно использовать в реальных сценариях.

Для тестирование различных команд robocopy без выполнения операций (копирования, перемещения или удаления) с файлами используется параметр /L . Данный параметр вернет список файлов и папок, которые будут скопированы вашей командой.

Использование robocopy для зеркалирования каталогов

Вы можете зеркалировать (синхронизировать) содержимое двух каталог с помощью следующей команды robocopy (под зеркалированием понимается копирование файлов из целевой папки с удалением файлов в целевом каталоге, если они удалены в источнике).

robocopy \\testnode1\C$\source\ \\testnode2\c$\dest\ *.txt /MIR /COPYALL /Z /B /J /R:3 /W:1 /REG /TEE /LOG+:%appdata%\robocopy.log

Обратите внимание на ключ /Z даже если вы копируете небольшие файлы по устойчивому каналу. Он не несёт дополнительных расходов при использовании, но в случае обрыва, вы сможете продолжить копирование просто повторно запустив скрипт.

При копировании больших файлов (более 2 Гб) с некоторых iSCSI/SAN томов, процесс robocopy может существенно использовать оперативную память сервера. Проблем обычно связано с тем, что для данного LUN в настройках RAID используется write-through кэширование вместо write-back.

Инкрементальное копирование с помощью robocopy

Сам по себе robocopy не может полностью обеспечить инкрементальное резервное копирование каталога (копирование новых и измененных файлов), для этого мы будем использовать небольшой bat скрипт:

Заметка. Если файловые системы source или dest не являются NTFS, используйте ключ /FFT , так как на других файловых системах (включая эмулированные NTFS) может возникнуть ошибка, из-за которой robocopy будет видеть старые файлы как измененные, из-за отличий в метке времени.

Robocopy: перемещение файлов

С помощью ключа /mov или /move вы можете переместить файлы (а точнее удалить успешно скопированные файлы из исходной директории):

robocopy C:\source\ F:\dest\ /MOVE /E /COPYALL /Z /B /J /R:3 /W:1 /REG /TEE /LOG+:%appdata%\robocopy.log

  • /MOVE – удалить файлы и директории из исходной папки, после того как они были скопированы. Имейте в виду, что этот ключ нужно использовать вместе с /E или /S, в противном случае вы перенесете только файлы, но не директории. Если вы хотите перенести только файлы, используйте ключ /MOV
Примечание. Поведение robocopy при использовании ключей /MOVE и /MOV не интуитивно.
  • Если вы используете ключ /MOVE с ключом /E, то вы перенесете все файлы, директории (включая файлы внутри них) и пустые директории. Файлы и директории удалятся из исходной папки. /MOVE с /S даст такой же результат, но пустые директории не перенесутся и будут удалены.
  • Если вы используете ключ /MOV с ключом /E, то вы перенесете все файлы, включая те, которые находятся в директориях и поддиректориях, также скопируются все директории (включая пустые), но они не будут удалены из исходного каталога, в отличие от файлов. Используя /MOV с /S, вы получите такой же результат, но пустые директории не будут скопированы.

Пример использование robocopy в планировщике задач

Для примера возьмём задачу: нам необходимо с помощью robocopy регулярно синхронизировать содержимое сетевой папки между двумя серверами с ведением логов.

Запустите командную строку с правами администратора и введите: compmgmt.msc

Перейдите в System Tools -> Task Scheduler Library. Создайте новое задание планировщика (Create task).

создать задание планировшика robocopy

Укажите имя задания, и выберите пользователя из-под которого будет выполняться задание. Пользователь должен иметь доступ на чтению и запись в обоих каталогах (при копировании по сети между серверами домена можно использовать аккаунт System, в этом случае нужно предоставить на целевой каталог права RW для объекта computer сервера-источника) .

Выберите опцию Run whether user is logged on or not, для того чтобы задание выполнялось в фоновом режиме. Также отметьте Run with highest privileges. Эта опция сработает если аккаунт из-под которого выполняется задание, будет иметь права администратора.

задание зеркалирования robocopy

Перейдите на вкладку Triggers и создайте новый триггер.

Выберите параметр On a schedule (по расписанию), выберите время начала и отметьте Repeat task every, указав интервал выполнения. В моём случае это 5 минут – каждые 5 минут, начиная с часа дня 22 апреля (обязательно измените эту дату на ту, которая нужна вам), директории будут синхронизированы. В for a duration of поставьте Indefinitely (бесконечно)

расписание запуска

Перейдите во вкладку Actions и нажмите New…

Выберите Start a program, и укажите путь к .bat скрипту.

Содержание robocopy-mirror.bat:

Помимо журнала выполнения задания планировщика, robocopy будет писать собственный лог файл копирования в C:\robocopy.log. Если аккаунт из-под которого будет выполняться скрипт не имеет прав администратора, смените C:\robocopy.log на нужный вам путь.

запуск команды robocopy через планировшик

Остальные настройки заполнять не надо. После нажатия на кнопку ОК, вас попросит ввести пароль от учетной записи, которую вы выбрали для запуска задания.

события запуска задания планировщика

Если вы всё настроили правильно, директории должны начать синхронизироваться.

Если у вас возникли проблемы с выполнением скрипта, то обязательно проверьте вкладку History вашей задачи

журнал запуска планировщика robocopy

Отслеживание изменений в каталогах с помощью robocopy

В robocopy есть встроенный механизм отслеживания изменений в исходном каталоге (и их последующего копирования) и встроенный планировщик – параметры /mon и /mot .

  • /mon:N – проверяет исходную директорию на предмет изменений каждую 1 минуту, и если изменений в директории больше чем N, то будет произведено копирование в целевую директорию. Если задан параметр /mot:Y, то изменения будут проверяться каждые Y минут.
  • /mot:N – проверяет исходную директорию на предмет изменений каждые N минут. Минимальное значение N = 1, в минутах. Если параметр /mon не задан, то будет считаться что /mon:1

.bat скрипт для зеркалирования с отслеживанием изменений с интервалом в 1 минуту. Этот скрипт нужно запускать из-под аккаунта с правами администратора.

Плюсы:

  • Не нужно создавать задание в планировщике задач
  • Подходит для непостоянного выполнения. Например, в течение нескольких часов, в таком случае запустить скрипт руками через CMD проще, чем создавать задание в планировщике

Минусы:

  • Чтобы запустить .bat скрипт в фоновом режиме, нужно либо использовать VBS скрипт, либо стороннее ПО, например, NirCmd.
  • Минимальный интервал поиска изменений и копирования – 1 минута. Для меньшего интервала нужно использовать PowerShell или bat скрипт.

Коды возврата (ошибки) robocopy

Ниже приведены стандартные коды возврата robocopy, которые можно использовать для обработки различных ошибок, которые возвращает утилита после выполнения действия копирования (кот возврата эта битовая маска).

HexDecimalMeaning if set
0x000No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.
0x011One or more files were copied successfully (that is, new files have arrived).
0x022Some Extra files or directories were detected. No files were copied Examine the output log for details.
0x044Some Mismatched files or directories were detected. Examine the output log. Housekeeping might be required.
0x088Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
0x1016Serious error. Robocopy did not copy any files. Either a usage error or an error due to insufficient access privileges on the source or destination directories.
Коды возврата могут комбинироваться:
0x033(2+1) Some files were copied. Additional files were present. No failure was encountered.
0x055(4+1) Some files were copied. Some files were mismatched. No failure was encountered.
0x066(4+2) Additional files and mismatched files exist. No files were copied and no failures were encountered. This means that the files already exist in the destination directory
0x077(4+1+2) Files were copied, a file mismatch was present, and additional files were present.

Любое значение больше 7 говорит о том, что при копировании через robocopy возникла ошибка. Вы можете обрабатывать эти ошибки в bat файле:

if %ERRORLEVEL% EQU 16 echo ***FATAL ERROR*** & goto end
if %ERRORLEVEL% EQU 15 echo OKCOPY + FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 14 echo FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 13 echo OKCOPY + FAIL + MISMATCHES & goto end
if %ERRORLEVEL% EQU 12 echo FAIL + MISMATCHES& goto end
if %ERRORLEVEL% EQU 11 echo OKCOPY + FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 10 echo FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 9 echo OKCOPY + FAIL & goto end
if %ERRORLEVEL% EQU 8 echo FAIL & goto end
if %ERRORLEVEL% EQU 7 echo OKCOPY + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 6 echo MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 5 echo OKCOPY + MISMATCHES & goto end
if %ERRORLEVEL% EQU 4 echo MISMATCHES & goto end
if %ERRORLEVEL% EQU 3 echo OKCOPY + XTRA & goto end
if %ERRORLEVEL% EQU 2 echo XTRA & goto end
if %ERRORLEVEL% EQU 1 echo OKCOPY & goto end
if %ERRORLEVEL% EQU 0 echo No Change & goto end
:end

Утилита robocopy имеет огромный функционал и позволяет гибко настроить операции копирования. Как альтернативу robocopy в PowerShell можно использовать командлет Copy-Item, который хоть и менее функционален, но работает с объектной моделью PowerShell, что может быть важно, если вы часто используете PowerShell или используете цепочки автоматизации с другими языками программирования.

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

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

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

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

Предварительные условия

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

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

Установите последнюю версию программы Robocopy на сервере, который будет использоваться для копирования файлов — или на исходном, или на целевом сервере. Необходимо также установить самую последнюю версию операционной системы. См. инструкции в разделе Шаг 2. Стабилизация файлов, которые будут реплицированы. Если вы выполняете предварительное заполнение файлов с сервера не под управлением Windows Server 2003 R2, программу Robocopy можно запустить на исходном или целевом сервере. На целевом сервере, на котором обычно установлена последняя версия операционной системы, предоставляется доступ к самой последней версии программы Robocopy.

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

Выбирая объем пространства, которое нужно выделить для предварительно заполненных файлов, следует учитывать ожидаемое увеличение объема данных с течением времени и требования к хранилищу для репликации DFS. Дополнительные сведения см. в статьях Edit the Quota Size of the Staging Folder and Conflict and Deleted Folde (Изменение размера квоты промежуточной папки и папки конфликтов и удаленных объектов) и Managing DFS Replication (Управление репликацией DFS).

На исходном сервере при необходимости установите монитор процессов или обозреватель процессов, чтобы использовать его для проверки приложений, блокирующих файлы. Сведения о скачивании см. в статье Process Monitor v3.53 (Монитор процессов версии 3.53) и Process Explorer v16.31 (Обозреватель процессов версии 16.31).

Шаг 1. Скачивание и установка последней версии программы Robocopy

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

Источник последней совместимой версии программы Robocopy зависит от версии Windows Server, которая работает на сервере. Сведения о скачивании исправления с последней версией программы Robocopy для Windows Server 2008 R2 или Windows Server 2008 см. в статье List of currently available hotfixes for Distributed File System (DFS) technologies in Windows Server 2008 and in Windows Server 2008 R2 (Список доступных исправлений для технологий распределенной файловой системы (DFS) в Windows Server 2008 и Windows Server 2008 R2).

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

Поиск и установка последней версии программы Robocopy для конкретной версии Windows Server

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

robocopy.exe kbqfe "<operating system version>"

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

Найдите и скачайте исправление с наибольшим номером идентификатора (то есть последнюю версию).

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

Шаг 2. Стабилизация файлов, которые будут реплицированы

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

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

Шаг 3. Копирование реплицированных файлов на целевой сервер

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

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

Предварительное заполнение реплицированных файлов на целевой сервер с помощью программы Robocopy

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

Откройте командную строку с повышенными привилегиями.

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

Эта команда копирует все содержимое исходной папки в целевую со следующими параметрами:

Например, следующая команда реплицирует файлы из исходной реплицированной папки, E:\RF01, на диск данных D на целевом сервере:

При предварительном заполнении файлов для репликации DFS с помощью программы Robocopy мы рекомендуем использовать параметры, описанные выше. Некоторые из значений можно изменить или можно добавить дополнительные параметры. Например, в ходе тестирования может оказаться, что вы можете установить более высокое значение (количество потоков) для параметра /MT. Кроме того, если вы в основном реплицируете файлы большего размера, можно увеличить производительность копирования, добавив параметр /j для операций ввода-вывода без буферизации. Дополнительные сведения о средстве Robocopy см. на странице справочника по командной строке Robocopy.

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

  • Не используйте параметр /mir (который производит зеркальное отражение дерева каталогов) или параметр /mov (который перемещает файлы, а затем удаляет их из источника).
  • Не удаляйте параметры /e, /b и /copyall.

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

Далее

После начального копирования и последующего решения проблем с максимально возможным количеством пропущенных файлов с помощью программы Robocopy используйте командлет Get-DfsrFileHash в Windows PowerShell или команду Dfsrdiag. Это позволит проверить предварительно заполненные файлы путем сравнения хэшей файлов на исходном и целевом серверах. Подробные инструкции см. в статье Step 2: Шаг 2. Проверка предварительно заполненных файлов для репликации DFS.

Как освободить место на диске в Windows - один из частых вопросов

Как освободить место на диске с помощью утилиты robocopy в Windows?

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

Примечание: Частой ошибкой начинающих пользователей является то, что они хранят абсолютно все свои данные на системном диске. Обычно, это каталоги вроде "Мои документы", который наполнен не только документами, но и всем возможным, включая большие видео файлы. И со временем объем данных возрастает до такого размера, что Windows начинает тормозить из-за нехватки свободного места на системном диске. Если уж с привычкой никак не справится, то стоит перенести каталог (Мои) Документы в другое место.

Примечание: Конечно, освободить место всегда можно при помощи полного форматирования диска, однако - это несколько радикальный метод.

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

Как переместить файлы старше указанного возраста в другой каталог с Robocopy в Windows

Откройте окно командной строки (описание можно найти здесь) и введите данную команду:

Примечание: Возможно, команда покажется вам весьма громоздкой и сложной. Но, поверьте, ее составление, а тем более копирование уже готового шаблона и вставка нужных каталогов, займет намного меньше времени, нежели попытка разгрести заполненные и плохо структурированные каталоги, такие как директории с названиями в стиле "Разобрать".

Здесь, и представляют собой полные пути до папок источника и получателя. В случае если в путях имеются пробелы, то их необходимо обрамлять двойными кавычками. после параметра "/MinAge" задает максимальное количество дней, которое вы хотите, чтобы файлы оставались в исходном каталоге. Чтобы не быть голословным, вот пример, который перемещает файлы старше 365 дней из папки "C:\YouData" в каталог "D:\OldData", а так же сохраняет лог в файл "D:\OldData\ListOfFilesMoved.txt".

  • robocopy "C:\YourData" "D:\OldData" /S /MOVE /XA:SH /A-:SH /MinAge:365 /R:1 /W:1 /mt:32 /log:"D:\OldData\ListOfFilesMoved.txt"

Как переместить все файлы одного типа и старше определенного возраста в другую папку с Robocopy в Windows

Если вам нужно переместить файлы старше определенного возраста, но только одного типа, то достаточно после добавить расширение файла с комбинацией "*.". Например, чтобы переместить только старые mp3 файлы, команда будет выглядеть следующим образом:

  • robocopy "C:\YourData" "D:\OldData" *.mp3 /S /MOVE /XA:SH /A-:SH /MinAge:365 /R:1 /W:1 /mt:32 /log:"D:\OldData\ListOfFilesMoved.txt"

Как переместить файлы размером больше заданного предела с Robocopy в Windows

Существует так же параметр для установки ограничения на размер перемещаемых файлов. Например, команда ниже будет перемещать только файлы размером более 100 Мб (на самом деле немного меньше из-за использования числа 1000 вместо 1024 при умножении)

  • robocopy "C:\YourData" "D:\BigFiles" /S /MOVE /XA:SH /A-:SH /Min:100000000 /R:1 /W:1 /mt:32 /log:"D:\BigFiles\ListOfFilesMoved.txt"

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

Назначение параметров программы Robocopy в Windows

Назначение различных параметров описано в следующей таблице:

Применять действие на подкаталоги

Перемещать файлы вместо копирования

Включать системные и скрытые файлы

Запрещает robocopy добавлять системный атрибут "скрытый" к файлам и каталогам получателя

Запрещает перемещение или копирование файлов возрастом менее N дней

Запрещает перемещение или копирование файлов размером менее N байт

Если при копировании или перемещении встречается заблокированный файл, то данный параметр указывает robocopy количество повторных попыток (N-раз)

Указывает robocopy ждать N секунд перед повторной попыткой

Параметр указывает количество одновременных процессов, которые будут копировать или перемещать файлы (многопоточность)

Создание файла журнала со списком всех скопированных или перемещенных файлов. Настоятельно рекомендуется указывать данный параметр.

Robocopy является мощным инструментом, но знайте, что у него нет никакой функцией отмены. Поэтому, перед использованием всегда делайте резервную копию, если это возможно. Для того, чтобы более подробно узнать обо всех его переключателях, введите в командной строке "robocopy /?" (без кавычек). Хоть, полное описание robocopy никак не поместится в рамках одной статьи. Тем не менее, даже этой информации вполне достаточно, чтобы уже сейчас начать использовать утилиту на полную мощность.

Теперь, вы знаете как можно быстро переместить старые и большие файлы на другой диск, тем самым освободив место на основном диске.

Читайте также: