Користувальницькькі налаштування

Налаштування сайту


coding:scripts:backup_mirror

Синхронизация каталогов с сервером

Есть програмка robocopy. robocopy.zip

Позволяет с регулируемой нагрузкой на сеть копировать данные. Если нужно - умеет “удалять лишнее”. Может копировать только изменения и докачивать в случае обрыва. Если нужно часть оставить нетронутой - она тоже это умеет.

Умеет работать “по предварительному плану в отдельном файле” - заданию.

Пришлось готовиться к синхронизации с маленькой особенности - 1 каталог с кирилическим именем трогать нельзя.

backup_mirror6.cmd
@echo off
c:
cd c:\temp
rem Проверка, есть-ли уже у нас сам "робокопи" в системе
if not exist "C:\WINDOWS\system32\robocopy.exe" xcopy /E /Q /R /Y "\\Server\Distribution\robocopy\robocopy.exe" "C:\WINDOWS\system32\robocopy.exe"
 
echo %computername%
 
if not exist d:\DistribCompany goto localdirsynk
goto landirsynk
 
:localdirsynk
echo Local Distrib once sync
mkdir d:\DistribCompany
 
if %errorlevel%==1 goto dir_error
 
rem xcopy /E /Q /R /Y "d:\Distribution\" "d:\DistribCompany"
 
:landirsynk
rem pause
echo Lan Distrib sync
 
rem robocopy.exe "\\Server\Distribution\Start" "d:\DistribCompany" /LOG:c:\temp\%computername%.log /TEE  /NP /MIR /R:10 /W:30 /Z /IPG:2050  /XD "\\Server\Distribution\Start\Џ®¤ЇЁбЁ"
 
rem вариант с отражением процесса копирования (проценты на каждый файл)
rem robocopy.exe "\\Server\Distribution\Start" "D:\Distribution" /LOG:disk_d.log /TEE /MIR /R:10 /W:30 /Z /IPG:2050  /XD "\\Server\Distribution\Start\Џ®¤ЇЁбЁ\"
 
echo copy logs to server
xcopy /E /Q /R /Y "c:\temp\%computername%.log" "\\Server\Distribution\Logs"
 
goto complete
 
:dir_error
 
echo Disk error.
echo %computername%  >  c:\temp\%computername%_error.log
echo. >> c:\temp\%computername%_error.log
echo. >> c:\temp\%computername%_error.log
echo. >> c:\temp\%computername%_error.log
ipconfig >> c:\temp\%computername%_error.log
xcopy /E /Q /R /Y "c:\temp\%computername%_error.log" "\\Server\Distribution\Logs"

Если нужно просто засинхронизировать 1 или несколько каталогов, то как вариант из найденных примеров: Мне он не подошел - внутрь “задания” не удалось передать кирилическое имя каталога. Что-бы по нему потом отработать\пропустить.

backup_mirror.cmd
@echo off
rem Зеркалирование файловых ресурсов утилитой robocopy (11.08.2009)
rem http://zheleznov.info/backup_mirror.htm
 
rem запустить настроенные задания (*.rcj), можно несколько подряд
rem robocopy.exe /job:disk_d
robocopy.exe /job:Distribution.rcj
rem robocopy.exe /job:disk_e
rem ждать нажатия клавиши
echo.
echo.
echo.
rem pause
disk_d.rcj
:: Зеркалирование файловых ресурсов утилитой robocopy (11.08.2009)
:: http://zheleznov.info/backup_mirror.htm
 
:: Файл настроек задания программы Robocopy
:: Задание: создать зеркало диска D: в подкаталоге D текущего каталога
 
:: Копируемый каталог
/SD:D:
 
:: Каталог назначения, указан относительный путь
/DD:.\D
 
:: Перечень каталогов, которые НЕ надо копировать
:: Внимание! Исключенные из копирования подкаталоги не удаляются
:: из каталога назначения, если они уже там есть
/XD
D:\RECYCLER
D:\System Volume Information
D:\Temp
 
:: Запись в файл журнала
/LOG:disk_d.log
/TEE	:: также выводить сообщения в консоль
/NP	:: не показывать прогресс (%) для каждого файла
 
:: Опции копирования
/MIR	:: Создать зеркало (MIRror)
 
:: Повтор копирования в случае ошибок
/R:10	:: количество повторов
/W:30	:: время ожидания перед повтором в секундах
coding/scripts/backup_mirror.txt · В останнє змінено: 2012/10/15 20:09 (зовнішнє редагування)