Windows копирование только измененных файлов

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

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

Синтаксис Robocopy :

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

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

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

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

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

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

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

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

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

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

  • 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+:[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, вам также нужно выбрать одну из этих :

  • /COPYALL
  • /COPY:O
  • /COPY:S
  • /COPY:U
  • /SEC
Важное

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

/a Копировать только те файлы у которых есть атрибут архива. /m Копировать только те файлы у которых есть атрибут архива, и после этого сбросить этот атрибут. /ia:[RASHCNETO] Копировать только те файлы у которых есть указанные атрибуты. /xa:[RASHCNETO] Не копировать те файлы у которых есть указанные атрибуты. /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 для файлов.
Читайте также:  Linux сетевые настройки консоль

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

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

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

Windows копирование только измененных файлов

Сообщения: 2205
Благодарности: 1363

——-
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Сообщения: 114
Благодарности: 0

Конфигурация компьютера
Материнская плата: ga-z97m-d3h
Есть специально для того предназначенный инструмент — RoboCopy. »

Спасибо
Сделал так, Все верно или лучше, что то добавить?

robocopy «\\dc\1c_update\1cv8» «C:\Program Files (x86)\1cv8» /MIR /Z

Читаем xcopy /?
/D:m-d-y Копирует файлы, измененные либо в указанный день, либо после. »

Этот вариант не интересен тем, что править скрипт пришлось бы

лучше уж 1с разместить на терминале и там обновлять »

Сообщения: 26992
Благодарности: 7877

Сделал так, Все верно или лучше, что то добавить? »

Это зависит от того, что Вы хотите получить. Если резервную копию — то, разумеется, неверно. Резервная копия — это никогда не зеркало/реплицирование (по той же причине, не являются резервированием перемещаемые профили пользователей в домене, схемы синхронизации через интернет типа Dropbox и присные с ним) . Что будет, если по каким-то причинам с исходными файлами случится что-то нехорошее (удаление, повреждение содержимого и т.п.)?

Если же Ваша цель именно простая репликация, а не резервирование — то в общем случае этого достаточно, разве что с параметрами логирования поиграться: Robocopy и убедиться, что файловая система в источнике и приёмнике — NTFS.

Сообщения: 2205
Благодарности: 1363

написал строчку копирующую все файлы папками в другую папку.
Вот команда
xcopy «\\dc\1c_update\1cv8» «C:\Program Files (x86)\1cv8» /y /S /E
Этот вариант не интересен тем, что править скрипт пришлось бы

——-
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Читайте также:  Лучший размер файла подкачки windows 10

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

Если обратиться к Википедии (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 вам необходимо ввести команду:

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

  1. Параметры копирования
  2. /COPY:флаги копирования
  3. /DCOPY:флаги копирования
  4. Параметры выбора файлов
  5. Параметры повторных попыток
  6. Параметры ведения журнала
  7. Параметры задания
  8. Комментарии

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

  • /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.
Читайте также:  Обновление windows отмена перехода времени

Ключи /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

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

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

Оцените статью