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
Копировать только верхние 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. По умолчанию они копируются.
Читаем 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
Этот вариант не интересен тем, что править скрипт пришлось бы
——- Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Данное средство, очень часто используется в задачах системного администратора, по переносу сетевых шар и файловых ресурсов, и в сценариях синхронизации данных.
Если обратиться к Википедии (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.