robocopy копирование с сохранением прав

Синхронизация папок и прав NTFS с помощью robocopy

В данной статье попытаюсь описать свое решение такой достаточно распространенной задачи, как синхронизация содержимого двух папок, расположенных на разных серверах. Допустим, у вас есть 2 сервера: buh1 и buh2, в конце дня все измененные файлы должны копироваться с одного сервера на другой, кроме того все права доступа NTFS должны остаться теми же самыми, что и у исходных файлов.

Мое решение основываемся на использовании утилиты robocopy. Как я уже писал ее можно использовать для организации системы резервного копирования и синхронизации файлов.

Сначала необходимо убедиться, что на обоих серверах программа robocopy.exe находится по одному и тому же пути (обычно это каталог C:\Windows\system32).

Для осуществления схемы синхронизации каталогов, на первом шаге мы мапим (диск Z:) на первый сервер папку с другого файлового сервера (предварительно необходимо убедиться, что буква диска не занята). Далее вызываем robocopy, которая осуществляет синхронизацию файлов. Параметр команды “/sec” – говорит о том, что необходимо копировать и права доступа NTFS на файлы. Кроме того, скрипт создает лог, который можно использовать для дальнейшего разбора полетов.

Скрипт выглядит следующим образом:

Осталось создать bat файл и новое задание в планировщике Windows.

Вот и все, так просто и быстро без использования сторонних утилит (ведь в Windows 2008 Server уже включена по-умолчанию утилита robocopy), мы реализовали систему синхронизации двух папок с сохранением прав доступа NTFS.

Источник

Копирование файлов и папок с сохранением прав

Для копирования файлов и папок (в том числе по сети) с сохранением прав, в Windows имеется встроенная программа Robocopy. Использовать данную программу довольно просто, достаточно в командной строке написать:

robocopy \\computer\src c:\dst /e /zb /copyall /w:5

Справку по синтаксису и параметрам, можно посмотреть прямо в командной строке. Но есть следующие интересные моменты:
/Z — включает поддержку докачки, без которой, в случае обрыва связи при копировании через сеть, хэш-сумма скопированного файла может не сойтись с источником;
/M — копирует файлы с атрибутом «Архивный» и сбрасывает его, т.е. копирует только файлы, которые были изменены, и чтобы не измененные файлы в следующий раз не копировать, сбрасывает атрибут «Архивный»;
/B — копирует файлы, для которых NTFS разрешения для данного пользователя отсутствуют (при этом пользователь должен быть либо в группе Администраторы, либо в группе Операторы архива);
/sec — копирует только основную информацию о файлах (Данные, Атрибуты, Метки времени),
/copyall — копирует всю информацию о файлах (Данные, Атрибуты, Метки времени, Список контроля доступа NTFS (ACL), Сведения о владельце, Сведения аудита);
параметры /R и /W лучше всегда задавать вручную, так как по умолчанию они очень велики, и в процессе копирования, robocopy может просто надолго застрять на каком-либо файле.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Robocopy копирование с сохранением прав

Доброе времени суток. Уважаемые читатели и гости, крупного IT блога Pyatilistnik.org, занимающего в рейтинге Яндекс.Радар 2500 место, среди всех сайтов России. В прошлый раз, мы с вами решили проблему со сбоем запроса устройства. Сегодня я не хочу рассматривать новые ошибки, а поделюсь своим опытом использования утилиты Robocopy, приведу примеры использования, поговорю о параметрах утилиты и покажу, как у Robocopy использовать графический интерфейс (GUI). Данной программкой просто обязан пользоваться каждый системный администратор, ну или хотя бы знать. о ее существовании, лично у меня она находится на почетном месте в моем наборе системного инженера.

Что такое 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)

Versii robocopy

Где лежит Robocopy в системе?

Основной исполняемый файл Robocopy.exe располагается по пути C:\Windows\System32. Утилита очень компактная и весит всего 132 килобайта, но это не уменьшает ее мощи и функционала.

mestopolozhenie fayla robocopy

Где скачать утилиту Windows Robocopy

Начиная с Windows 7, данная программулька является ее составной частью, и я уже выше показал, что она лежит в папке C:\Windows\System32, если по каким-то причинам у вас в ней нет файла robocopy.exe, то у вас есть несколько вариантов его скачать.

Zagruzka robocopy

Далее полученный файла robocopy, вам необходимо разархивировать данный файл, для этого у вас должен быть архиватор winrar или 7-zip. Через правый клик извлекаем его содержимое.

Skachat robocopy.exe 01

Далее 7-Zip-ом распаковываем msi пакет rktools.msi.

Skachivanie robocopy

Перейдите в папку rktools, там вас будет ждать файл robocopy.exe, который вы можете скачать куда угодно.

fayl

Возможности утилиты Robocopy (Robust File Copy Utility)

И так давайте разбираться, какими функциональными возможностями обладает данная утилита. Как я и писал выше Robocopy умеет:

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

spravka utilityi robocopy

У вас появится небольшая справка, в которой вам отобразят конструкцию построения команд и несколько примеров реализации. Чтобы вывести все доступные параметры Robocopy вам необходимо ввести команду:

Тут ключи и параметры будут разбиты на несколько подкатегорий:

Parametryi utilityi robocopy

Ключи параметров копирования:

Ключи /COPY:флаги копирования

Ключ /COPY это один из базовых ключей, который вы будите применять в своих сценариях синхронизации или копирования, он переносит (Флаги копирования: D=Данные, A=Атрибуты, T=Метки времени). (S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита)

Ключи /DCOPY:флаги копирования

Данный раздел флагов отвечает за то, что копировать для каталогов (D=Данные, A=Атрибуты, T=Метки времени)

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

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

Копирование данных только с определенными форматами, например, exe и mp3, и не копировать пустые папки.

robocopy kopirovanie fayla opredelennogo formata

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

Источник

Использование Robocopy для синхронизации и резервного копирования файлов, примеры

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

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

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

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

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

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

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

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

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

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

ispolzovanie utility robocopy v windows dlya kopir

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

Использование 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 даже если вы копируете небольшие файлы по устойчивому каналу. Он не несёт дополнительных расходов при использовании, но в случае обрыва, вы сможете продолжить копирование просто повторно запустив скрипт.

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

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

Инкрементальность осуществляется за счёт параметра /maxage:1 — файлы старше суток копироваться не будут. Для первого, “базового” копирования, можно выполнить этот скрипт без параметра /maxage.

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

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

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

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

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

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

sozdat zadanie planirovshika robocopy

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

zadanie zerkalirovaniya robocopy

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

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

raspisanie zapuska

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

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

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

zapusk komandy robocopy cherez planirovshik

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

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

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

zhurnal zapuska planirovshika robocopy

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

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

Плюсы:

Минусы:

Коды возврата (ошибки) 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 примеры использования и параметры

Синтаксис Robocopy :

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

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

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

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

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

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

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

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

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

Значение по умолчанию 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+:[RASHCNET] Добавить атрибуты к скопированным файлам. Adds the specified attributes to copied files. /a-:[RASHCNET] Удалить атрибуты у скопированных файлов. /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 Копировать символические ссылки, вместо реального файла.

Когда используете опцию /SECFIX, вам также нужно выбрать одну из этих :

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

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

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

Время между повторами в секундах. По дефолту 30 секунд.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • roblox привет сосед 1 акт
  • robinhood приложение для android

  • 4064.ImportantВажное
    /r: Количество повторов если копирование не удаётся. По дефолту это 1,000,000 попыток.
    /w: