Robocopy и примеры использования с параметрами
- Что такое robocopy (Robust File Copy Utility)
- Версии утилиты Robocopy
- Где лежит Robocopy в системе?
- Где скачать утилиту Windows Robocopy
- Возможности утилиты Robocopy (Robust File Copy Utility)
- Ключи параметров копирования:
- Ключи /COPY:флаги копирования
- Ключи /DCOPY:флаги копирования
- Параметры выбора файлов
- Ключи параметров повторных попыток
- Ключи параметров ведения журнала
- Ключи параметров задания
- Варианты и примеры использования на практике
- Ошибки работы Robocopy
- Таблица кодов ошибок, которые появляются в Robocopy
- Автоматическое копирование папок по расписанию с Robocopy
- Графический (GUI) интерфейс в Robocopy
- Обзор RoboCopy GUI Utility ver. 3.1
- Аналоги утилиты Robocopy
Доброе времени суток. Уважаемые читатели и гости, крупного IT блога Pyatilistnik.org, занимающего в рейтинге Яндекс.Радар 2500 место, среди всех сайтов России. В прошлый раз, мы с вами решили проблему со сбоем запроса устройства. Сегодня я не хочу рассматривать новые ошибки, а поделюсь своим опытом использования утилиты Robocopy, приведу примеры использования, поговорю о параметрах утилиты и покажу, как у Robocopy использовать графический интерфейс (GUI). Данной программкой просто обязан пользоваться каждый системный администратор, ну или хотя бы знать. о ее существовании, лично у меня она находится на почетном месте в моем наборе системного инженера.
Что такое robocopy (Robust File Copy Utility)
Утилита Robocopy (Robust File Copy Utility) - это специализированное средство, в задачи которого входит тонкая настройка процесса копирования, синхронизации, удаления и переноса файлов и папок, между дисками компьютера, компьютерами, сетевыми шарами и лесами, с сохранением атрибутов, прав разрешений и многое другое.
Robocopy за счет своих алгоритмов и многопоточности позволяет проводить копирование или синхронизацию одних файловых ресурсов с другими в десятки раз быстрее, чем обычное копирование средствами проводника Windows.
Данное средство, очень часто используется в задачах системного администратора, по переносу сетевых шар и файловых ресурсов, и в сценариях синхронизации данных.
Если обратиться к Википедии (https://ru.wikipedia.org/wiki/Robocopy), то там вы обнаружите, что она создавалась как средство репликации и шла в составе такого известного комплекса инструментов, как Windows Resource Kit.
Версии утилиты Robocopy
Первая версия robocopy появилась в 1997 году в составе инструментов Windows Resource Kit. На текущий момент самой свежей версией является 10.0.17763.1 входящей в состав Windows 10 1809, табличку в Википедии я подправил (https://en.wikipedia.org/wiki/Robocopy)
Где лежит Robocopy в системе?
Основной исполняемый файл Robocopy.exe располагается по пути C:\Windows\System32. Утилита очень компактная и весит всего 132 килобайта, но это не уменьшает ее мощи и функционала.
Где скачать утилиту Windows Robocopy
Начиная с Windows 7, данная программулька является ее составной частью, и я уже выше показал, что она лежит в папке C:\Windows\System32, если по каким-то причинам у вас в ней нет файла robocopy.exe, то у вас есть несколько вариантов его скачать.
- Первый вариант, это скопировать его из другой системы
- Второй вариант, это загрузить средство Windows Server 2003 Resource Kit Tools по ссылке (https://www.microsoft.com/en-us/download/details.aspx?id=17657). В состав этого пакета входит утилита Robust File Copy Utility.
Далее полученный файла robocopy, вам необходимо разархивировать данный файл, для этого у вас должен быть архиватор winrar или 7-zip. Через правый клик извлекаем его содержимое.
Далее 7-Zip-ом распаковываем msi пакет rktools.msi.
Перейдите в папку rktools, там вас будет ждать файл robocopy.exe, который вы можете скачать куда угодно.
Возможности утилиты Robocopy (Robust File Copy Utility)
И так давайте разбираться, какими функциональными возможностями обладает данная утилита. Как я и писал выше Robocopy умеет:
- Производить копирование файлов и папок
- Производить синхронизацию файлов и папок
- Копировать по расширениям файлов
- Переносить права на папки и файлы
- Копирование и перенос файлов по датам и за нужный период
- Удалять файлы и папки
Чтобы посмотреть все ключи и их назначение, нам нужно открыть командную строку, желательно от имени администратора и ввести команду:
У вас появится небольшая справка, в которой вам отобразят конструкцию построения команд и несколько примеров реализации. Чтобы вывести все доступные параметры Robocopy вам необходимо ввести команду:
Тут ключи и параметры будут разбиты на несколько подкатегорий:
- Параметры копирования
- /COPY:флаги копирования
- /DCOPY:флаги копирования
- Параметры выбора файлов
- Параметры повторных попыток
- Параметры ведения журнала
- Параметры задания
- Комментарии
Ключи параметров копирования:
- /S - данный параметр позволит вам произвести копирование вложенных папок, за исключением пустых. Очень удобно, чтобы не перетаскивать не используемые каталоги
- /E - данный ключ, альтернатива параметру /S, так как он позволит скопировать вложенные папки, в том числе и пустые.
- /LEV:n - данный параметр копирования Robocopy позволит вам скопировать n-число уровней у текущего каталога папок. Предположим у вас есть папка, которая включает в себя еще 10 подпапок, задав n равное 5, вы скопируете структуру, только первых пяти верхних каталогов, а все, что ниже не будет затронуто.
- /Z - параметр позволяет возобновлять копирование в случае какого-то сбоя
- /B - Копирование файлов в режиме архивирования.
- /ZB - совмещение параметров Robocopy.exe, в данном случае вначале будет использоваться режим с возобновлением, но если доступа к каким либо файлам не будет, то утилита переключиться в режим архивации.
- /J - данный параметр Robocopy.exe используется при копировании крупного размера файлов, где применяется небуферезированный ввод-вывод
- /EFSRAW - будет произведено копирование всех зашифрованных файлов в режиме EFS RAW
Ключи /COPY:флаги копирования
Ключ /COPY это один из базовых ключей, который вы будите применять в своих сценариях синхронизации или копирования, он переносит (Флаги копирования: D=Данные, A=Атрибуты, T=Метки времени). (S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита)
- /SEC - данный флаг позволит вам скопировать файлы и каталоги вместе с их параметрами безопасности (эквивалентно /COPY:DATS)
- /COPYALL - данный ключ скажет утилите Robocopy.exe, что нужно при копировании перенести все сведения о файле (Аналог /COPY:DATSOU)
- /NOCOPY - данный ключ скажет, что не нужно копировать никаких сведений о файле (полезно с параметром /PURGE).
- /SECFIX - данный ключ будет полезен при синхронизации, когда нужно перезаписать и исправить параметры безопасности на всех папках и файлах. Простой пример, вы сделали первое копирование одного каталога с файлами в другой, и перенесли параметры безопасности (NTFS), в какой-то момент в исходном каталоге у вас поменялись разрешения на некоторые файлы, и если вы произведете синхронизацию, без этого ключа, то эти новые права доступа не перенесутся в новое место, поставив ключ /SECFIX, вы этого избежите и все будет обновлено.
- /TIMFIX - этот флаг позволит исправить атрибуты времени у всех файлов, в том числе и пропущенных
- /PURGE - позволит удалить каталоги и файлы в папке назначения, которые уже не существуют в источнике.
- /MIR - в данном случае будет создана полная копия (зеркальная) источника в назначении, аналогично выполнению Robocopy.exe с ключами /E /PURGE
- /MOV - данный ключ позволит перемещать файлы (удаление из источника после копирования, я бы назвал это аналогов вырезать в Windows)
- /MOVE - похоже на ключ /MOV, но уже вырезаться будут файлы с папками.
- /A+:[RASHCNET] - данный флаг позволяет вам добавлять атрибуты к скопированным файлам
- /A-:[RASHCNET] - данный флаг сообщает утилите Robocopy, что нужно удалить заданные атрибуты у скопированных файлов
- /CREATE - данный флаг создает дерево каталогов и файлы нулевой длины
- /FAT - Создать файлы назначения только в формате 8.3 FAT
- /256 - отключает поддерживание длинных путей свыше 256 знаков, на практике не встречал таких сценариев.
- /MON:n - robocopy в данным флагом в параметрах, будет производить мониторинг источника, и перезапустит выполнение после n изменений
- /MOT:m - Наблюдать за источником; перезапустить через m минут, если произошли изменения.
- /RH:hhmm-hhmm - тут вы говорите для Robocopy.exe в какое время нужно производить запуск, в какой момент будет запущено задание копирования файлов.
- /PF - Проверять часы запуска по файлам (не по проходам)
- /IPG:n - данный ключ поможет снизить нагрузку на сеть, когда у вас не очень хороший канал, n интервал задержки в миллисекундах.
- /SL - копирует сами символические ссылки, за место копирования целевых объектов, на которые эти селинки ссылаются.
- /MT[:n] - использование многопотокового режима, позволяет существенно увеличить скорость копирования, за счет использования процессорных моoностей системы. n может иметь значение от 1 до 128 потоков. Нельзя использовать с параметрами /IPG и /EFSRAW. Для повышения производительности перенаправьте вывод с помощью параметра /LOG.
Ключи /DCOPY:флаги копирования
Данный раздел флагов отвечает за то, что копировать для каталогов (D=Данные, A=Атрибуты, T=Метки времени)
- /NODCOPY - не производить копирование любых сведений о каталоге
- /NOOFFLOAD - Robocopy будет копировать файлы без использования механизма разгрузки копий Windows
Параметры выбора файлов
Утилита Robocopy очень тонко позволяет производить тонкую фильтрацию файлов при копировании, для этого есть огромное количество ключей и флагов.
- /A - флаг задает копирование файлов с атрибутом "Архивный"
- /M - задает копирование файлов с атрибутом "Архивный" и потом его сбросить на конечной стороне
- /IA:[RASHCNETO] - переносить файлы на которых установлены заданные атрибуты (объявленные заранее)
- /XA:[RASHCNETO] - при копирование будут исключены файлы с объявленными атрибутами
- /XF file [файл] - позволяет исключать файлы, у которых заданные имена, пути и подстановочные знаки
- /XD dirs [папки] - исключает каталоги, с заданными именами и путями
- /XC - robocopy не копирует измененные файлы
- /XN - исключить более поздние файлы
- /XO - Исключить более ранние файлы
- /XX - Исключить дополнительные файлы и папки
- /XL - Исключить отдельно расположенные файлы и папки
- /IS - Включить те же файлы
- /IT - Включить оптимизированные файлы
- /MAX:n - Robust File Copy Utility исключит файлы, у которых размер более n-байт, можно это назвать максимальным размеров копируемых файлов
- /MIN:n - данный параметр Robocopy установит минимальный размер копируемого файла, позволит исключить файлы у которых n-байт меньше заданного
- /MAXAGE:n - тут мы задаем максимальный возраст файлов. Мы исключим при копировании файлы, у которых возраст больше n дней
- /MINAGE:n - тут мы задаем минимальный возраст файлов. Мы исключим при копировании файлы, у которых возраст меньше n дней
- /MAXLAD:n - Наиболее поздняя дата последнего обращения. Будут скопированы данные, которые не использовались с даты n
- /MINLAD:n - Наиболее ранняя дата последнего обращения. Robocopy исключит файлы, которые были использованы после даты указанной в n. (Если n < 1900, то n = n дней, в противном случае n — дата в формате ДД.ММ.ГГГГ)
- /XJ - отключение точек соединения, которые по умолчанию включаются
- /FFT - Использовать время файлов FAT (двухсекундная точность)
- /DST - Тут задается. будет ли Robocopy учитывать одно часовую разницу при переходе на летнее время
- /XJD - Исключить точки соединения для папок
- /XJF - Исключить точки соединения для файлов
Ключи параметров повторных попыток
- /R:n - Число повторных попыток для неудавшихся копий, по умолчанию — 1 миллион.
- /W:n - Тут вы зададите период ожидания между повторными попытками: по умолчанию это 30 секунд.
- /REG - Сохранить /R:n и /W:n в реестре как параметры по умолчанию.
- /TBD - Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67).
Ключи параметров ведения журнала
- /L - получить только список, в данном случае Robust File Copy Utility файлы не копирует, не удаляет, не помечается метками времени.
- /X - Сообщать обо всех дополнительных файлах, а не только о выбранных.
- /V - Подробный вывод с указанием пропущенных файлов.
- /TS - Включать в вывод меток времени исходных файлов.
- /FP - Включать в вывод полные пути файлов.
- /BYTES - Печатать размеры файлов в байтах.
- /NS - Режим без размера, у вас не будет заноситься информация, о размерах файлов в журнал.
- /NC - Режим без класса, не заносить в журнал классы файлов.
- /NFL - Режим без списка файлов, не заносить в журнал имена файлов.
- /NDL - Режим без списка папок, не заносить в журнал имена папок.
- /NP - Режим без хода процесса, не отображать число скопированных процентов.
- /ETA - Показывать оценку времени окончания копирования файлов.
- /LOG:файл - Производить запись состояния в файл журнала (перезаписывать существующий журнал).
- /LOG+:файл - Производить запись состояния в файл журнала (добавлять к существующему журналу).
- /UNILOG:файл - Производить запись состояния в файл журнала в формате Юникод (перезаписывать существующий журнал).
- /UNILOG+:файл - Производить запись состояния в файл журнала в формате Юникод (добавлять к существующему журналу).
- /TEE - Направлять выходные данные в окно консоли и в файл журнала.
- /NJH - Без заголовка задания.
- /NJS - Без сведений о задании.
- /UNICODE - Состояние вывода в формате Юникод.
Ключи параметров задания
- /JOB:имя_задания - Взять параметры из указанного файла задания.
- /SAVE:имя_задания - Сохранить параметры в указанный файл задания
- /QUIT - Выйти после обработки командной строки (для просмотра параметров).
- /NOSD - Не указывается исходная папка.
- /NODD - Не указывается папка назначения.
- /IF - Включить следующие файлы.
Как видите у утилиты Robocopy много параметров и ключей, и я рад, что Microsoft не забросила свою полезную программку, которую я полюбил еще в Windows Server 2003 Resource Kit Tools.
Варианты и примеры использования на практике
Теперь когда мы с вами разобрали параметры Robocopy, остается научиться их использовать и применять в ваших сценариях. Сценариев может быть огромное количество. например:
- Нужно скопировать только измененные файлы
- Нужно скопировать только новые файлы
- Нужно скопировать только папки или файлы с определенным расширением, например, PDF
- Нужно копировать файлы из локального расположения в сетевое
Самый простой пример использования Robocopy, это простое копирование одного каталога в другой в рамках одного диска. Предположим мне нужно продублировать содержимое папки C:\Temp в C:\Test_robocopy
В командной строке пишем вот такую команду
Напоминаю параметр /E копирует файлы и папки, в том числе и пустые. Сам процесс выглядит поэтапным копированием в один поток файлов.
По окончании выполнения команды вы увидите сводную таблицу, в которой будет статистика по каталогам, файлам, времени, пропущенным файлам и скорости.
Но при таком использовании robocopy, вы на каталоге назначения получите файлы с уже другими правами на них. Видно это в свойствах.
Чтобы скопировать и исправить на файлах в каталоге назначения все права доступа (перезаписав текущие и подставив туда из источника), вам необходимо выполнить вот такую команду:
Ключ /COPYALL переносит все сведения о файле, а параметр этого ключа /SECFIX исправит все сведения на вкладке "Безопасность".
Напомню, что есть ключ /MIR параметра robocopy, он делает зеркальную копию каталогов, вот его пример использования:
В момент такого зеркального копирования, утилита Robust File Copy Utility, сделает на конечной стороне полную копию источника, и со всеми списками доступа (ALC) на вкладке безопасности, так же будут перенесены все атрибуты данных. При повторном запуске, будут перенесены, только изменения.
Чтобы осуществить перенос данных на сетевую шару, вы можете использовать вот такую конструкцию:
Тот же пример с синхронизацией прав robocopy C:\Temp \\c-10-5210\Test_robocopy /E /COPYALL /SECFIX
Ну и пример использования при зеркалировании каталоговrobocopy C:\Temp \\c-10-5210\Test_robocopy /MIR /Z
Теперь представим задачу, что вам необходимо скопировать файлы, которые были изменены за последние 5 дней, выполняем вот такую команду:
Если нужно исключить сегодняшний день, то нужно добавить ключик /MINAGE:1
Если стоит задача скопировать файлы и исключить из все, возраст которых меньше 1 день, то будет выглядеть вот так:
Вот вам пример использования Robocopy, где происходит вырезание файлов в источнике и перенос их в каталог назначения, со всеми правами и атрибутами на файл, вместо сетевого пути, может быть и локальный, как в первом примере.
Иногда может возникнуть задача, перенести все, кроме срытых файлов системы, для этого сценария Robust File Copy Utility имеет ключ /XA:H
Можно переносить файлы с пометкой "Только для чтения", через такую структуру
Копирование данных только с определенными форматами, например, exe и mp3, и не копировать пустые папки.
Также можно делать выборку по размеру файлов, например, мне нужно скопировать, все, что больше 100 килобайт и меньше 100 мегабайт.
При копировании данных можно исключить не нужные вам каталоги, вот пример команды, где исключается папка CrystalDiskMarkPortable:
Что еще полезного умеет Robocopy, например, автоматическое копирование папок по расписанию да и еще не в один поток. Что такое поток копирования, по сути когда вы в проводнике Windows, запускаете простое копирование, то у вас в диспетчере задач, появляется задача "Проводник", которая последовательно запускает процесс и перенос данных. Когда же Robocopy делает таких потоков больше, то у вас сам процесс идет в разы быстрее, но затрачиваются больше процессорных мощностей, но в виду того, что современные процессору зачастую не дозагружаются даже на 20-30%, то глупо было бы это не использовать, особенно с серверными CPU.
Вот примеры использования команд с заданием потоков, напоминаю, что их может быть от 1 до 128. Особенный прирост скорости вы ощутите в моменты, когда у вас будет огромное количество мелких файлов.
Если повторно запустить данную команду, то она будет копировать и синхронизировать только измененные файлы, так называемые дельты, очень удобно при актуализации каталогов, резервных копий
Еще полезной командой будет, когда вам нужно обновить только ACL (Вкладку безопасность на всех файлах, без их повторного копирования)
Ошибки работы Robocopy
У данной утилиты, конечно же могут возникать и проблемы, но чаще всего они не значительные и решаются очень просто, например вы можете встретить ошибку "ОШИБКА 5 (0x00000005) Копирование параметров безопасности NTFS для конечного файла". Данная ошибка гласит, что у вас не хватает прав на перенос параметров и прав на файлы, все дело в том, что ваша cmd-консоль запущена в режиме администратора.
Таблица кодов ошибок, которые появляются в Robocopy
Вот вам подробная, сводная таблица в которой отражены все коды ошибок от 0-8 в данной утилите и дано подробное описание в чем проблема. (Подробнее на https://support.microsoft.com/ru-ru/help/954404/return-codes-that-are-used-by-the-robocopy-utility-in-windows-server-2)
Автоматическое копирование папок по расписанию с Robocopy
Чем хороша данная утилита, так это тем, что с ее помощью можно писать скрипты и сценарии, например в том же PowerShell. Все выше описанные команды, вы можете поместить в текстовый файл (txt), затем сменить ему расширение на bat или cmd, чтобы он стал исполняемым и далее использовать его, либо в групповой политике, или же создать с помощью него задачу в "Планировщике заданий Windows", хотя можно и прямо в нем вписывать все ключи и параметры Robocopy. Про создание задач в планировщике заданий Windows читайте по ссылке. Обратите внимание, что ключи я вписываю в поле аргументы.
Примеры скриптов при резервном копировании или синхронизации. Предположим у вас есть рабочая папка и вы бы хотели ее синхронизировать с другой или сетевой шарой, как я и писал выше вы делаете исполняемый файл или создаете задание в планировщике, вот пример команды, которая перенесет файлы, будет их синхронизировать, перенесет все атрибуты и права, а так же будет их обновлять. Папка C:\Test, это источник, а вот каталог \\c-10-5210\share\Test, уже назначения.
если по каким-то причинам вам нужно монтировать перед эти диск, то будет выглядеть вот так:
net use z: /delete
net use z: \\c-10-5210\share\
robocopy C:\Test\ Z:\ /sec /E /Z /XO /SECFIX /R:3 /W:5 /MT:32
На самом деле примеров использования Robocopy очень много, если будет чем поделиться, пишите в комментариях.
Графический (GUI) интерфейс в Robocopy
С примерами утилиты Robocopy мы ознакомились, теперь предлагаю вам посмотреть для нее графическую оболочку, которая как ни странно есть, и я узнал, о ее существовании буквально недавно. Называется она RoboCopy GUI Utility ver. 3.1, к сожалению она использует robocopy.exe не самой последней версии, но все работает и в Windows 10 1809.
После загрузки RoboCopy GUI Utility ver. 3.1, нам его необходимо установить. Запускаем исполняемый файл. Соглашаемся с лицензионным соглашением.
Утилита вам предложит указать каталог куда будут извлечены файлы.
Соглашаемся с извлечением.
В итоге вы получите вот такую структуру файлов. Запускаем setup.exe.
У вас появится тривиальный мастер установки GUI интерфейса для Robocopy. Нажимаем next.
Принимаем лицензионное соглашение "I gree"
Указываете будет ли утилита устанавливаться только для вас или для всех.
next.
Установка графического интерфейса для Robocopy завершено.
У вас на рабочем столе появится ярлык Microsoft Robocopy GUI. Запускаем его и посмотрим, что из себя представляет эта утилита.
Обзор RoboCopy GUI Utility ver. 3.1
Давайте я бегло покажу, что из себя представляет данная программа. Сам графический интерфейс очень простой, так и должно быть. На первой вкладке вы увидите два действия:
- Первое, это нужно через "Source Path выбрать, что мы будем копировать"
- Второе действие, это в "Target Path мы задаем, куда мы будем переносить данные, при желании вы можете смонтировать сетевой диск, через пункт "Map Drive""
На вкладке "Copy Options", вы увидите уже знакомые параметры использования Robocopy, тут есть и ключи /SEC для переноса прав и команда /MOVE, которую мы применяли для вырезания файлов и многое другое. Тут же вы задаете количество потоков копирования.
Вкладка "Drive Mapping" поможет присоединить сетевой диск, тут вы указываете ip-адрес или DNS имя сервера, и учетные данные для подключения.
Вкладка "Filters" позволит вам указать, что именно нужно переносить и сделать фильтрацию, например, не переносить файлы длина которых в имени составляет более 256 символов, или только txt файлы.
Вкладка "Logging" задает параметры ведения логирования вашего задания.
Вкладка "Monitoring Options" будет полезна для наблюдения за источником копирования, в случае проблем, все можно идентифицировать и перезапустить.
Аналоги утилиты Robocopy
Robust File Copy Utility не единственная утилита, которая позволяет копировать файлы, каталоги с атрибутами и правами, ее аналогами можно назвать утилиты:
- Total Commander
- icacls
- Xcopy
- Far
- Rsync
Вот такая вот полезная и богатая функционалом утилита Robust File Copy Utility или Robocopy.exe, надеюсь, что данный материал был для вас полезен и вы им поделитесь в социальных сетях. А с вами был Семин Иван, автор и создатель IT блога Pyatilistnik.org.
Иван, а как ее заставить удалять старые файлы (и папки) в целевой папке при резервном копировании?
То есть вам нужно до момента копирования или после в целевой папке удалять старые файлы по датам или еще каким-то критериям?
Я копирую по сети резервные копии, сделанные другой программой с помощью Robocopy. И нужно чтобы программа в месте назначения хранила только 3 копии архива. Следовательно когда мы скопируем туда 4 копию, то потом первую (самую старую) надо удалить.
По идее это видимо режим синхронизации в robocopy, но в какой последовательности он работает? Сначала копирует, потом удаляет или наоборот?
Здравствуйте, что делать, если нам нужно скопировать кучу файлов (с подключенного устройства на мой сервер) и соединение плохое? Время от времени соединение разрывалось, но некоторые файлы были успешно скопированы
Спасибо, очень полезная утилита CMD.
Повлияет ли на SID использование ROBOCOPY для восстановления сервера после его переименования?
Как я могу скопировать все папки в моем каталоге, которые имеют «DONE» в имени папки?
Это часть процедуры резервного копирования, и в ней несколько сотен папок с надписью «DONE». Это единственные папки, которые я хочу скопировать, включая все подпапки и файлы?
Как я могу скопировать 2 типа файлов в одной строке скрипта? Например, * .doc и * .xls
Большое спасибо. Информация была действительно полезной.
Спасибо за статью: знаете ли вы, есть ли способ использовать robocopy для копирования всех файлов из папки и ее подпапок в одну папку назначения без какой-либо структуры исходных подпапок? Другими словами, мне нужно в место назначения в одну папку, скопировать все файлы с типом файла (PDF).
Отличная подборка различных примеров, я давно использую утилиту robocopy в своей работе, очень полезный инструмент.
Уважаемый Иван, большое спасибо, это отличная получилась статья!
Вы можете использовать forfiles для этого
Нет
Здравствуйте,
Подскажите как правильно с помощью robocopy скопировать файлы с сервера на все доменные машины?
Тут вам нужно взять PowerShell. В текстовом файле засунуть весь список с новой строки уникальное имя, объявить это переменной, а потом в цикле скопировать нужное на каждый из них.
не понимаю как работает восстановление данных, если они backup’ались с помощью robocopy, есть какой то faq по восстановлению данных после robocopy?
Что вы подразумеваете под восстановлением данных после Robocopy?
Хотелось бы поделиться опытом. Позавчера копировал с физического сервера WS 2008 R2 на виртуальный сервер на WS 2012 R2, raid 10 из SAS дисков, 114 Gb по 1 Gbit каналу, заняло 3 часа. Вчера с WS 2008 R2 копировал через robocopy, с этого же физического сервера WS 2008 R2 на физический WS 2008 R2 (существенно хуже по характеристикам), 114 Gb по 1 Gbit каналу , заняло 12 часов. Под конец ночью мне надоело терпеть низкую скорость, решил через обычную 1 поточную smb сессию (smb версии 2), скорость передачи мелких файлов выросла с 10 мб/с до 50 мб/с. Получается через smb мог за 3-4 часа перекинуть.. Разница в пиковой скорости: в 1-м случае до 500 Мб/с, во 2-м до 150 Мб/с. через robocopy.
Замерял все характеристики через perfmon и zabbix. Кстати в robocopy, встроенную в WS 2008 R2 нельзя задавать количество потоков. Так что будьте бдительны, не всегда утилиты работают так, как мы думаем. Возможно, нужно было заменить утилиту, скопировав её с нового сервера.
Ссылка на загрузку Windows Server 2003 Resource Kit Tools больше не работает.
Сергей, выложил другую ссылку
Супер!!! Респект и уважуха. Я блин столько лет мучался батниками )))), а тут для меня АМЕРИКА!!!
СПАСИБО!
А главное — всё разжёвано до предельных мелочей.
Мне даже захотелось написать нормальную оболочку GUI для последних версий robocopy
Потом поделитесь было бы круто
Доброго дня!
А вот такая задача: нужно ежедневно в заданное время архивировать два конкретных файла базы данных .mdb, в архив с назначенным именем, например «ABCD.zip», архив защитить паролем, заранее заданным, и скопировать этот архив в заданный каталог ftp (доступ к каталогу — по логину и паролю).
Что посоветуете, в каком направлении хоть искать решение?
7-zip и powershell
Доброго дня.
А как скопировать только папки с атрибутами ACL без самих файлов?
Доброго дня.
Благодарю Вас за доступное объяснение по этой утилите.
К сожалению я пыталась закачать 07.04.2022, только ссылка не работает.
Вы не могли бы обновить ссылку с утилитой?
Добрый день! Анастасия, что именно не получилось скачать? Я проверил ссылку на RoboCopy GU и Windows Server 2003 Resource Kit Tools они живые
Иван, также пыталась закачать с облака mail — другой размер при закачке либо ошибка и файл не открывается
Прошу помощи по теме! Есть папка в которой 120 тыс файлов. Нужно распихать эти файлы по папкам по 500 шт. Набираю команду robocopy c:\source c:\new /s /max:500
Создается новая папка, но больше ничего не происходит. Что я делаю не так? Помогите пожалуйста.
Попробуйте вот так:
$source = «c:\source»
$destination = «c:\new»
$maxFilesPerFolder = 500
# Создание списка всех файлов в папке и ее подпапках
$files = Get-ChildItem $source -Recurse | Where-Object { $_.PSIsContainer -eq $false }
# Сортировка списка файлов по дате создания
$files = $files | Sort-Object -Property CreationTime
$currentFolder = 1
$fileCount = 0
# Перемещение файлов в подпапки c:\new, не превышающие лимит в 500 файлов
foreach ($file in $files) {
if ($fileCount -eq 0) {
$folderName = «{0:D4}» -f $currentFolder
$folderPath = Join-Path -Path $destination -ChildPath $folderName
New-Item -ItemType Directory -Force -Path $folderPath | Out-Null
}
$fileCount++
Move-Item $file.FullName $folderPath
if ($fileCount -eq $maxFilesPerFolder) {
$currentFolder++
$fileCount = 0
}
}
Пытаюсь сделать бэкап.
robocopy Settings\ N:\Cloud\Settings\ /E /XO /MT /W:5
N — диск подключен по WebDav
Проблема в том, что копируется всегда всё целиком.
Если N заменить на локальный диск — работает как задумано, т.е. копирует только новые/изменённые.
Подозреваю что проблема в WebDav.
Есть ли возможность забороть?
Добрый день. Хорошая интересная статья. Не могу решить задачу где необходимо из некоего количества папок выбрать более ранние файлы и поместить их в папку назначения.
Добрый день! Можете подробнее описать. Например, есть папка, вырезать или скопировать из нее все файлы, где дата изменения больше 45 дней
Добрый день.
KSC делает backup папку предыдущим днём с наименованием пример сегодня 27.02.2024, а название папки klbackup2024-02-26#18-00-00. Подскажите как через robocopy сделать архив папки?