Robocopy примеры. Robocopy - Самое интересное в блогах

Robocopy примеры. Robocopy - Самое интересное в блогах

08.02.2019

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

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

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

Важно

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

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

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

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

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

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

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

    robocopy.exe kbqfe ""

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

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

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

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

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

Объяснение

Устранение

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

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

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

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

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

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

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

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

14.09.2006 Дик Льюис

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/COPY:DAT /E /NP

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

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

/LOG+:C:RoboLog.txt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что такое robocopy?

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

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

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

Robocopy C:\folder \\backupserver\backup

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

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

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

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

ROBOCOPY Синтаксис

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

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

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

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

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

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

/A Копировать только файлы с установленным атрибутом «Архивный».
/M Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA: Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA: Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/XF file [файл]… Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам.
/XD dirs [папки]… Исключить папки, соответствующие заданным именам и путям.
/XC Исключить измененные файлы.
/XN Исключить более поздние файлы.
/XO Исключить более ранние файлы.
/XX Исключить дополнительные файлы и папки.
/XL исключить отдельно расположенные файлы и папки.
/IS Включить те же файлы.
/IT Включить оптимизированные файлы.
/MAX:n Максимальный размер файла — исключить файлы, размер которых более n байт.
/MIN:n Минимальный размер файла — исключить файлы, размер которых менее n байт.
/MAXAGE:n Максимальный возраст файла — исключить файлы, возраст которых превышает n дней.
/MINAGE:n Минимальный возраст файла — исключить файлы, возраст которых менее n дней.
/MAXLAD:n Наиболее поздняя дата последнего обращения — исключить файлы, которые не использовались с даты n.
/MINLAD:n Наиболее ранняя дата последнего обращения — исключить файлы, которые использовались после даты n. (Если n < 1900, то n = n дней, в противном случае n — дата в формате ДДММГГГГ).
/XJ исключить точки соединения. (по умолчанию обычно включаются).
/FFT Использовать время файлов FAT (двухсекундная точность).
/DST Учитывать одночасовую разницу при переходе на летнее время.
/XJD Исключить точки соединения для папок.
/XJF Исключить точки соединения для файлов.

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

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

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

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

Заметки

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

Примеры

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

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

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

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

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

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

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

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

Каждому администратору 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, а 260 символов .
256 - непосредственно имя файла «file.txt»
3 - «C:\»
1 - невидимый null в конце
Спасибо!



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows