Команда 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+:[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М
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь
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 много, мы будем рассматривать их на практике, в готовых командах. Мы не будем рассматривать самые простые примеры использования 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
- Если вы используете ключ /MOVE с ключом /E, то вы перенесете все файлы, директории (включая файлы внутри них) и пустые директории. Файлы и директории удалятся из исходной папки. /MOVE с /S даст такой же результат, но пустые директории не перенесутся и будут удалены.
- Если вы используете ключ /MOV с ключом /E, то вы перенесете все файлы, включая те, которые находятся в директориях и поддиректориях, также скопируются все директории (включая пустые), но они не будут удалены из исходного каталога, в отличие от файлов. Используя /MOV с /S, вы получите такой же результат, но пустые директории не будут скопированы.
Пример использование robocopy в планировщике задач
Для примера возьмём задачу: нам необходимо с помощью robocopy регулярно синхронизировать содержимое сетевой папки между двумя серверами с ведением логов.
Запустите командную строку с правами администратора и введите: compmgmt.msc
Перейдите в System Tools -> Task Scheduler Library. Создайте новое задание планировщика (Create task).
Укажите имя задания, и выберите пользователя из-под которого будет выполняться задание. Пользователь должен иметь доступ на чтению и запись в обоих каталогах (при копировании по сети между серверами домена можно использовать аккаунт System, в этом случае нужно предоставить на целевой каталог права RW для объекта computer сервера-источника) .
Выберите опцию Run whether user is logged on or not, для того чтобы задание выполнялось в фоновом режиме. Также отметьте Run with highest privileges. Эта опция сработает если аккаунт из-под которого выполняется задание, будет иметь права администратора.
Перейдите на вкладку 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 на нужный вам путь.
Остальные настройки заполнять не надо. После нажатия на кнопку ОК, вас попросит ввести пароль от учетной записи, которую вы выбрали для запуска задания.
Если вы всё настроили правильно, директории должны начать синхронизироваться.
Если у вас возникли проблемы с выполнением скрипта, то обязательно проверьте вкладку History вашей задачи
Отслеживание изменений в каталогах с помощью 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, которые можно использовать для обработки различных ошибок, которые возвращает утилита после выполнения действия копирования (кот возврата эта битовая маска).
Hex | Decimal | Meaning if set |
0x00 | 0 | No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized. |
0x01 | 1 | One or more files were copied successfully (that is, new files have arrived). |
0x02 | 2 | Some Extra files or directories were detected. No files were copied Examine the output log for details. |
0x04 | 4 | Some Mismatched files or directories were detected. Examine the output log. Housekeeping might be required. |
0x08 | 8 | Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further. |
0x10 | 16 | Serious 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. |
Коды возврата могут комбинироваться: | ||
0x03 | 3 | (2+1) Some files were copied. Additional files were present. No failure was encountered. |
0x05 | 5 | (4+1) Some files were copied. Some files were mismatched. No failure was encountered. |
0x06 | 6 | (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 |
0x07 | 7 | (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 - один из частых вопросов
Наверное, у каждого имеется один или несколько каталогов с большим количество личных файлов, которые накапливались годами. И вы ни раз задавались вопросом как освободить место на диске в 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 никак не поместится в рамках одной статьи. Тем не менее, даже этой информации вполне достаточно, чтобы уже сейчас начать использовать утилиту на полную мощность.
Теперь, вы знаете как можно быстро переместить старые и большие файлы на другой диск, тем самым освободив место на основном диске.
Читайте также: