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

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

 

Что такое robocopy?

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

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




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

robocopy C:\folder \\backupserver\backup

 

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

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

(Такой «финт» например недоступен для утилит unix — rsync, scp. При копировании через SSH только одна сторона может быть удаленной — либо исходник, либо цель) Другие примеры можно посмотреть на страничке утилиты в wiki.

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

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

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+:[RASHCNET] Добавлять заданные атрибуты скопированным файлам.
/A+:[RASHCNET] Удалять заданные атрибуты из скопированных файлов.
/CREATE Создать только дерево папок и файлы нулевой длины.
/FAT Создать файлы назначения только в формате 8.3 FAT.
/256 Отключить поддержку длинных путей ( > 256 знаков).
/MON:n Наблюдать за источником; перезапустить после n изменений.
/MOT:m Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm Часы запуска — время, когда можно запускать новое копирование.
/PF Проверять часы запуска по файлам (не по проходам).
/IPG:n Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.

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

/A Копировать только файлы с установленным атрибутом «Архивный».
/M Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA:[RASHCNETO] Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA:[RASHCNETO] Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/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 Исключить точки соединения для файлов.

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

/R:n число повторных попыток для неудавшихся копий: по умолчанию — 1 миллион.
/W:n Время ожидания между повторными попытками: по умолчанию — 30 секунд.
/REG Сохранить /R:n и /W:n в реестре как параметры по умолчанию.
/TBD Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67).

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

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

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

/JOB:имя_задания Взять параметры из указанного файла задания.
/SAVE:имя_задания Сохранить параметры в указанный файл задания
/QUIT Выйти после обработки командной строки (для просмотра параметров).
/NOSD Не указывается исходная папка.
/NODD Не указывается папка назначения.
/IF Включить следующие файлы.

Заметки

Утилита 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

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

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

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

Подробное описание доступно на сайте Microsoft.

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

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

 

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

Комментариев

  1. Ответить

Сохраните для друзей или чтобы прочесть в другой раз:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *