Назад | Перейти на главную страницу

Где я могу найти готовые к использованию скрипты Windows, использующие robocopy?

Мы устанавливаем Windows Resource Kit, и он устанавливает RoboCopy. Мы хотим иметь доступ к нескольким скриптам Windows, использующим RoboCopy, чтобы мы могли начать с них и построить что-то еще. Есть идеи, где я могу найти несколько образцов?

ПРИМЕЧАНИЕ 1:

Немного информации. Каждый раз, когда мы пытаемся скопировать диск D на диск E (новый диск), мы получаем сообщение об ошибке:

ОШИБКА 32 (0x000000020) Копирование файла d: \ pagefile.sys Процесс не может получить доступ к файлу, потому что он используется другим процессом. Жду 30 секунд.

Просто чтобы помочь разобраться.

Я использовал Robocopy для синхронизации содержимого веб-сайта на 9 веб-серверах. Вот образец командного файла, который запускал robocopy.exe. Этот командный файл планировалось запускать каждые 5 или 10 минут или мог запускаться вручную для немедленного внесения изменений.

robocopy.exe d:\inetpub\wwwroot\ \\webserver1\d$\inetpub\wwwroot\ *.* /E /PURGE /SEC /NP /NJH /NJS /XF keepalive_*.* /XD trigger /XD "D:\inetpub\wwwroot\Long Path Name" /R:5 /COPYALL /LOG:copy_to_webserver1.log

Предыдущая команда скопирует содержимое d: \ inetpub \ wwwroot и отправит его на удаленный сервер d: \ inetpub \ wwwroot.

/ E = копирует все подкаталоги, включая пустые
/ PURGE = удаляет целевые файлы / папки, которых больше нет в источнике
/ SEC = копирует разрешения безопасности (ACL) файлов в место назначения
/ NP = отключает индикатор выполнения копирования; ОБЯЗАТЕЛЬНО сделайте это, если вы регистрируете результаты
/ NJH = не записывать заголовок задания
/ NJS = не записывать сводку задания
/ XF = исключить копирование определенных файлов (например, keepalive_.)
/ XD = исключить копирование определенных папок (например, триггер)
/ R = указывает количество повторных попыток в случае сбоя копирования (например, 5)
/ COPYALL = копирует все: данные, атрибуты, временные метки, информацию о безопасности, владении и аудите; перебор, раз уж я указал / SEC
/ LOG = записывать результаты в указанный файл журнала (например, copy_to_webserver1.log)

Надеюсь, это поможет вам начать работу с Robocopy. Я обнаружил, что это очень надежное и очень надежное решение для синхронизации нашего контента.

У меня нет скриптов, но встроенная документация очень проста для понимания и очень полезна.

robocopy /? | more

Начните с малого, просто скопировав одну папку из точки a в точку b. Обязательно включите переключатель / L и переключатель / LOG. Параметр / L просто перечисляет файлы, которые он должен был скопировать, а / Log создаст журнал, чтобы вы могли проверить, что вы хотите скопировать. Оттуда вы просто увеличиваете сложность. Для примера сценария:

robocopy "C: \ test_source" "\ server01 \ C $ \ test_destination" / L / V / E /LOG:"c:\test_robocopy.log "/ R: 10 / W: 30

Итак, глядя на ваш комментарий к Trondh, у меня есть несколько запланированных сценариев RoboCopy, однако это выполняется (по крайней мере, мной) с помощью запланированной задачи. В качестве примера у меня есть сценарий RoboCopy, который копирует файлы с диска X: на диск Y: с использованием любых указанных мной параметров. Затем я создаю запланированную задачу для запуска этого сценария с заданным интервалом, и если я беспокоюсь о мониторинге этого сценария, я могу создать второй шаг к задаче, который отправляет мне журнал вывода по электронной почте, если я хочу регулярно его просматривать.

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

Для решения второй проблемы (ошибка заблокированного файла и последующее ожидание) используйте переключатели /r, /w и /reg, например:

robocopy D:\ E:\ /r:1 /w:1 /reg  

Это означает рэтри один раз только после шв течение одной секунды и сделайте эти настройки по умолчанию в регистри.

Связанный сценарий это шаблон, который можно использовать для копирования открытых файлов. Вы можете просто изменить команду копирования в скрипте на robocopy, и вы сможете выполнять robocopy открытые файлы.