Mozilla Firefox

Robocopy примеры использования. Где мои файлы, ROBOCOPY? Копирование файлов с возобновлением что значит

Robocopy примеры использования. Где мои файлы, ROBOCOPY? Копирование файлов с возобновлением что значит

И Windows Server 2008 . Robocopy функционально заменяет Xcopy, с большим количеством опций.

Robocopy
Тип компонент Microsoft Windows [d]
Разработчик Microsoft
Операционная система Windows NT , Windows 2000 , Windows XP , Windows 2003 , Windows Vista ,Windows 7 , Windows Server 2008 .
Последняя версия 10.0.17763.1
Лицензия Проприетарное программное обеспечение
robocopy C:\A \\backupserver /E /MAX:102400000 /MIN:102400

Скопировать определенные форматы, например avi:

Robocopy C:\A \\backupserver *.exe *.avi /S

Полный список команд доступен на странице Microsoft TechNet - Robocopy

Графический интерфейс

Robocopy является утилитой командной строки, поэтому для удобства пользования Microsoft Technet предоставляет графическую оболочку для неё (GUI front-end), автор которой Дерк Бениш . Оболочка требует наличия .NET Framework 2.0.

Управление полосой пропускания

У Robocopy есть опция "inter-packet gap (IPG)", которая позволяет контролировать пропускную способность сети, используемую в сеансе. Теоретически следующая формула выражает задержку (D, в миллисекундах), необходимую для имитации желаемой полосы пропускания (BD, в килобитах в секунду) по сети с доступной полосой пропускания BA kbps:

D = B A − B D B A × B D × 512 × 1000 {\displaystyle D={B_{A}-B_{D} \over B_{A}\times B_{D}}\times 512\times 1000}

На практике, обычно приходится поэкспериментировать, чтобы найти подходящую задержку из-за таких факторов, как характер и объем трафика в сети. Методология, используемая опцией IPG, может не обеспечивать тот же уровень контроля, предоставляемый некоторыми другими технологиями дросселирования полосы пропускания, такими как BITS (который используется Windows Update и BranchCache).

Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista - в состав операционной системы.
Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования.
Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запуска

Robocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt

В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.
Но так ли хороша Robocopy ? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?

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

Но почему? Такой результат я видел впервые. Я сделал что-то не так? Кто-то из сотрудников все же изменил файлы, пока шло инкрементальное копирование? Ключ /MIR дал сбой? Какие-то файлы пропущены? Пустые? С Access Denied? Поврежденные?

Хорошо, отключаем сетевой доступ и снова копируем файлы. Не сходится! Пробуем без /MIR. Тот же результат.
Я был в недоумении. Пятнадцать лет я на 100% доверял Robocopy, и вот сегодня, впервые, она дала сбой. Некоторых файлов просто нет в месте назначения! Просто невозможно в это поверить.

Давайте подсчитаем файлы по-другому. Качаем утилиту FileList и делаем листинг файлов в исходной и конечной папке. А вот здесь число файлов совпадало. Удивительно.

А что если дело не в Robocopy? Что если Windows Explorer считает неправильно? Может быть в Windows Server 2008 R2 плохой Explorer, а в Windows Server 2012 R2 хороший? Я открыл свойства локальной и целевой папки на исходном сервере Windows Server 2008 R2. Число файлов не совпадало. Понадеемся, что в Windows Server 2012 R2 все исправлено. Открываем свойства папок на новом сервере… И…

Не совпало не только число файлов в исходной и конечной папке. Число файлов отличалось от снятых на Windows Server 2008 R2. Черная уличная магия.

И в эту минуту (наконец-то) на меня снизошло прозрение. Дело не в Robocopy, и не в версиях Explorer. Просто Explorer не умеет (!) считать, и не считает файлы и папки с именами длиннее 260 символов.

На исходном сервере файлы были расположены по пути «F:\Office1». На новом - «U:\SharedFiles\Office1».
Всего лишь из-за подпапки «SharedFiles» имена некоторых файлов и папок стали длиннее 255 символов. Для Robocopy не составило труда их скопировать. FileList легко их подсчитал. И только Explorer пропустил такие файлы при подсчете.

Сделав subst N: U:\SharedFiles и посчитав число файлов в F:\Office1 на исходном сервере и N:\Office1 на целевом, число файлов совпало.

Robocopy можно доверять.

UPD : Как правильно поправляют в комментариях, все же не 255, а

Robocopy (Robust File Copy) утилита командной строки, которая идет с Windows Vista и более новыми версиями Windows. В старых версиях Windows она была частью Windows Resource Kit Tools. В отличие от обычной команды copy , Robocopy создана для более надежного копирования и зеркалирования. С подержкой резрешений, атрибутов, информации о пользователе, таймштампав копируемых объектов.

Синтаксис Robocopy:

robocopy source destination
  • source - директория откуда будем копировать. Может быть сетевым путем.
  • destination - директория куда копируем. Локальный или сетевой путь.
  • - файлы которые нужно скопировать. Можно использоваться wildcard символы (* или?). Если параметр не задан, то по умолчанию используется *.*

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

robocopy c:\src c:\dst *.txt

В этом примере будут копироваться все файлы.txt из директории c:\src в директорию c:\dst .

Robocopy c:\src c:\dst /e

Копировать все файлы, включая пустые.

Robocopy c:\src c:\dst /MIR

Сделает зеркало. Использовать с осторожностью т.к. из c:\dst будут удалены все файлы которых нет в c:\src

Robocopy robocopy \\computer\src c:\dst

Источник файлов на другом компьютере в сети.

Описание всех опций и параметров

Robocopy опции копирования

Описание

/s Копировать поддиректории. Пустые директории пропускаются.
/e Копировать поддиректории, включая пустые.
/lev: Копировать только верхние N уровней дерева директорий.
/z Копировать файлы в режиме рестарта.
/b Копировать файлы в Backup режиме.
/zb Используется режим рестарта. Если доступ запрещен, то используется Backup режим.
/efsraw

Копировать зашифрованные файлы в EFS RAW режиме.

/copy:

Указать какие свойства файлов будут копироваться. Правильные варианты для данной опции:

  • D Data
  • A Attributes
  • T Time stamps
  • S NTFS access control list (ACL)
  • O Owner information
  • U Auditing information

Значение по умолчанию DAT (data, attributes, and time stamps).

/dcopy:T Копировать таймштампы директории.
/sec Копировать файлы с security (эквивалент /copy:DAT).
/copyall Копировать всю информацию по файлам (эквивалент /copy:DATSOU).
/nocopy Не копировать информацию по файлам (полезно с опцией /purge).
/secfix Фиксировать security на всех файлах, даже пропущенных.
/timfix Фиксировать время на всех файлах, даже пропущенных.
/purge Удалить файлы в папке назначения, которых больше нет в исходной папке.
/mir Зеркалировать дерево директорий (эквивалентно двум опциям /e вместе с /purge).
/mov Переместить файлы. Т.е. после копирования будут удалены исходные.
/move Переместить файлы и директории. Исходники будут удалены.
/a+: Добавить атрибуты к скопированным файлам. Adds the specified attributes to copied files.
/a-: Удалить атрибуты у скопированных файлов.
/create Создать дерево директории и файлы с нулевым размером.
/fat Создавать файлы с именами в формате 8.3 как в FAT.
/256 Отключить поддержку очень длинных путей (которые больше 256 символов).
/mon: Мониторит исходную папку и если обнаружит больше чем N изменений то начнёт копирование изменённых файлов. Подробнее читайте тут: планировщик в Robocopy .
/mot: Мониторит исходную папку, ищет изменения каждые M минут и начинает копировать если были изменения. Подробнее читайте тут: планировщик в Robocopy .
/rh:hhmm-hhmm Указывает время когда начнется выполнение запланированного копирования. Подробнее читайте тут: планировщик в Robocopy .
/pf Checks run times on a per-file (not per-pass) basis.
/ipg:n Specifies the inter-packet gap to free bandwidth on slow lines.
/sl Копировать символические ссылки, вместо реального файла.

Опции выбора файлов

/a Копировать только те файлы у которых есть атрибут архива.
/m Копировать только те файлы у которых есть атрибут архива, и после этого сбросить этот атрибут.
/ia: Копировать только те файлы у которых есть указанные атрибуты.
/xa: Не копировать те файлы у которых есть указанные атрибуты.
/xf [ ...]

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

/xd [ ...] Не копировать те директории у которых имя или путь похожи на заданный. В имени директории можно использовать "*" и "?".
/xct Не копировать изменённые файлы.
/xn Не копировать новые файлы.
/xo Не копировать старые файлы.
/xx Не копировать те файлы и папки которые уже есть в папке назначения.
/xl Excludes "lonely" files and directories.
/is Includes the same files.
/it Includes "tweaked" files.
/max: Не копировать файлы у которых размер больше чем N байт.
/min: Не копировать файлы у которых размер меньше чем N байт.
/maxage: Не копировать файлы которые старее N дней.
/minage: Минимальный возраст файлов N дней.
/maxlad: Не копировать те файлы которые не использовались начиная с даты N .
/minlad: Копировать файлы которые использовались до определённой даты. Если N меньше чем 1900, тогда это дни. Иначе это год в формате YYYYMMDD.
/xj Не копировать junction points. По умолчанию они копируются.
/fft Assumes FAT file times (two-second precision).
/dst Compensates for one-hour DST time differences.
/xjd Не копировать junction points для директорий.
/xjf Не копировать junction points для файлов.

Опции повторов

Опции логов

/l Покажет список файлов которые выбраны для обработки, но само копирование, удаление и т.п. не будет выполняться.
/x Сообщает все дополнительные файлы, а не только те, которые выбраны.
/v Болтливый режим. Покажет также пропущенные файлы.
/ts

Покажет таймстампы файлов.

/fp Показывать полные пути к файлам.
/bytes Показывать размер файлов в байтах.
/ns Указывает, что размеры файлов не логируются.
/nc Указывает, что классы файлов не должны логироваться.
/nfl Имена файлов не будут логироваться.
/ndl Имена директори не будут логироваться.
/np Не будет показываться прогресс копирования. Т.е. количество файлов и директорий.
/eta Показывает примерное время прибытия копированных файлов.
/log: Логировать в файл. Если такой файл логов уже есть, то он будет перезаписан.
/log+: Логировать в файл. Если такой файл логов уже есть, то данные будут добавлены в него.
/unicode Отображать статус в юникоде.
/unilog: Логировать в файл в формате Unicode. Если такой файл логов уже есть, то он будет перезаписан.
/unilog+: Логировать в файл в формате Unicode. Если такой файл логов уже есть, то данные будут добавлены в него.
/tee Логировать и в файл и в консоль.
/njh Указывает, что нет заголовка задания.
/njs Указывает, что нет резюме работы.

Часть 1: Создание сценария резервного копирования.

Robocopy (Robust File Copy) – это утилита командной строки для репликации (копирования) файлов и папок, которая имеется в операционных системах Windows Vista, Windows 7 и Windows Server 2008.

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

Утилита Robocopy существует также в графическом интерфейсе (GUI ) который разработал Дерк Бениш (Derk Benisch), системный инженер группы MSN Search компании Microsoft.

Распаковка установочных файлов по умолчанию навязывается программой в корень системного диска, например в C:\

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

Создание сценария резервного копирования вручную.

Итак, самая простая команда, которую можно применить для этих целей с использованием утилиты robocopy, будет выглядеть например так:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads

где C:\Users\имя_пользователя\Downloads — это путь к той папке, резервную копию которой мы хотим создать, а D:\Backup\Downloads – каталог для ее размещения.

Создаем текстовый файл с расширением.txt, и копируем в него команду. Присваиваем файлу имя robocopy (можно любое) с расширением cmd и сохраняем. Запускать файл нужно обязательно от имени администратора. Результат: команда создала резервную копию папки “Загрузки” в папке Backup на диске D:

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

1) Для включения в резервную копию пустых папок к команде нужно дописать ключ /E

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /E

2) Чтобы исключить из копирования скрытые системные файлы, используйте переключатель /XA:SH

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /XA:SH

3) Утилита Robocopy способна обработать и открытые файлы. Но при его обнаружении программа приостанавливает копирование и ждет, пока он закроется. Каждые 30 секунд Robocopy будет пытаться возобновить копирование. На эти попытки по умолчанию отведен один миллион попыток (!), но кто будет ждать столько времени? Поэтому количество попыток нужно сократить до разумного предела, например 5-10.

Для этих целей используется переключатель /R , а для изменения интервала между попытками — переключатель /W . С количеством попыток возобновить копирование открытого файла — 10, и временным промежутком между ними - 15 секунд, команда будет выглядеть так:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15

4) Чтобы скрыть с экрана прогресс копирования каждого отдельного файла, нужно добавить в команду переключатель /NP:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15 /NP

5) Можно также создать файл отчета работы утилиты с помощью переключателя /LOG и заставить его перезаписываться при каждом следующем запуске:

Robocopy C:\Users\имя_пользователя\Downloads D:\Backup\Downloads /R:10 /W:15 /NP /LOG:Backup.log

Как видите, возможностей у этой утилиты предостаточно, однако и это еще не все. С полным перечнем переключателей команды robocopy можно ознакомиться на сайте: http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx

Понимание значения каждого из ключей, позволит вам использовать функционал утилиты на полную катушку. Если вы не хотите создавать сценарии вручную, можно воспользоваться графическим интерфейсом утилиты robocopy (Microsoft Robocopy GUI ), с рассказа о котором я начал эту статью.

Создание сценария резервного копирования при помощи Microsoft Robocopy GUI.

Перейдите на вкладку Copy Options (Опции копирования) и отметьте необходимые чекбоксы галочками, для добавления соответствующих переключателей в сценарий копирования:

Обратите внимание на наличие функции Save Script (Сохранение скрипта) внизу окна. Она позволяет создавать целые наборы сценариев копирования сохранять их в указанное место и применять их в дальнейшем по мере необходимости:

Я проверил как это работает на практике, и оказалось, что сохранение файла сценария например на Рабочий стол невозможно:

А вот сохранение файла по предлагаемому утилитой по умолчанию пути происходит без проблем:

Впрочем это не столь принципиально – главное, что утилита сделала свое дело, готовый файл сценария для дальнейшего использования создан.

Часть 2: запуск сценария резервного копирования по расписанию.

Для планирования запуска резервного копирования в автоматическом режиме в определенное время, нам потребуется Планировщик заданий Windows .

Как это реализовать, наглядно демонстрируют скриншоты:

1) Создаем задачу, присваиваем ей имя. Устанавливаем атрибут “скрытая” (что, в принципе, не обязательно):

2) Во вкладке “Действия” указываем путь к файлу сценария:

3) Во вкладке “Триггеры” назначаем запуск по расписанию:

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

Сохраняем все изменения и закрываем Планировщик заданий .

Как видите, все очень просто. Теперь моя папка “Загрузки” будет копироваться в указанное место на диске D по расписанию (разово, ежедневно, еженедельно и так далее).

Доброе времени суток. Уважаемые читатели и гости, крупного IT блога сайт, занимающего в рейтинге Яндекс.Радар 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

Скачать RoboCopy GUI Utility ver. 3.1 можно с официального сайта https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc160891(v=msdn.10) или у меня по ссылке с mail облака

После загрузки RoboCopy GUI Utility ver. 3.1, нам его необходимо установить. Запускаем исполняемый файл. Соглашаемся с лицензионным соглашением.

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

Соглашаемся с извлечением.

В итоге вы получите вот такую структуру файлов. Запускаем setup.exe.

У вас появится тривиальный мастер установки GUI интерфейса для Robocopy. Нажимаем next.

Принимаем лицензионное соглашение "I gree"

Указываете будет ли утилита устанавливаться только для вас или для всех.

Установка графического интерфейса для Robocopy завершено.

У вас на рабочем столе появится ярлык Microsoft Robocopy GUI. Запускаем его и посмотрим, что из себя представляет эта утилита.

Обзор RoboCopy GUI Utility ver. 3.1

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

  1. Первое, это нужно через "Source Path выбрать, что мы будем копировать"
  2. Второе действие, это в "Target Path мы задаем, куда мы будем переносить данные, при желании вы можете смонтировать сетевой диск, через пункт "Map Drive""

На вкладке "Copy Options", вы увидите уже знакомые параметры использования Robocopy, тут есть и ключи /SEC для переноса прав и команда /MOVE, которую мы применяли для вырезания файлов и многое другое. Тут же вы задаете количество потоков копирования.

Вкладка "Drive Mapping" поможет присоединить сетевой диск, тут вы указываете ip-адрес или DNS имя сервера, и учетные данные для подключения.

Вкладка "Filters" позволит вам указать, что именно нужно переносить и сделать фильтрацию, например, не переносить файлы длина которых в имени составляет более 256 символов, или только txt файлы.

Вкладка "Logging" задает параметры ведения логирования вашего задания.

Вкладка "Monitoring Options" будет полезна для наблюдения за источником копирования, в случае проблем, все можно идентифицировать и перезапустить.