Написал скриптик с использованием robocopy, может, кому-то пригодится для шаблона.
Обратите внимание, что у robocopy есть еще флаги /B и /ZB, которые вообще по сети не будут копировать, если у вас есть права на архивацию на удаленном сервере. Предлагаемый скрипт будет забирать подкаталоги BIn и Reports из C:\patch и раскладывать сначала на образцовый сервер, а потом по другим серверам. Оригинальная директория бекапится в .old перед копированием. Копирование зеркалом, то есть при удалении из источника файлов, они так же пропадут в целевой директории.
Код:
@echo off
echo ================ ОБНОВЛЕНИЕ SERVER-TERM ================
pause
pause
echo ================ НИЖНИЙ РЕГИСТР Reports ================ >>SERVER-copy.log
for /f "Tokens=*" %%F in ('dir /l /b /s "C:\patch\Reports\*"') do FOR %%I in ("\\%%F") DO ren "%%F" "%%~nxI"
echo ================ БЕКАП СУЩЕСТВУЮЩЕГО ================ >>SERVER-copy.log
robocopy \\SERVER-term\c$\120Up\Bin \\SERVER-term\c$\120Up\Bin.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:SERVER-copy.log
robocopy \\SERVER-term\c$\120Up\Resources\Reports \\SERVER-term\c$\120Up\Resources\Reports.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:SERVER-copy.log
echo ================ ОТКЛЮЧЕНИЕ ПРИЛОЖЕНИЯ ================ >>SERVER-copy.log
taskkill /s SERVER-term /im mainframe* /f
echo ================ ПЕРЕНОС НОВЫХ ВЕРСИЙ ================ >>SERVER-copy.log
robocopy C:\patch\Reports \\SERVER-term\c$\120Up\Resources\Reports /Z /E /R:3600 /W:10 /TEE /LOG+:SERVER-copy.log
robocopy C:\patch\Bin \\SERVER-term\c$\120Up\Bin /Z /E /R:3600 /W:10 /TEE /LOG+:SERVER-copy.log
Код:
@echo off
echo ================ ОБНОВЛЕНИЕ ВСЕХ СЕРВЕРОВ ================
pause
pause
pause
for %%a in (server01 server02 server03 server04 server-term-01) do (
echo ================ БЕКАП %%a ================ >>%%a-copy.log
robocopy \\%%a\c$\Program\Bin \\%%a\c$\Program\Bin.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:%%a-copy.log
robocopy \\%%a\c$\Program\Resources\Reports \\%%a\c$\Program\Resources\Reports.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:%%a-copy.log
echo ================ ОТКЛЮЧЕНИЕ ПРИЛОЖЕНИЯ ================ >>%%a-copy.log
taskkill /s %%a /im mainframe* /f
echo ================ ОБНОВЛЕНИЕ %%a ================ >>%%a-copy.log
robocopy C:\Program\Bin \\%%a\c$\Program\Bin\ /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:%%a-copy.log
robocopy C:\Program\Resources\Reports \\%%a\c$\Program\Resources\Reports /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:%%a-copy.log
)
echo ================ БЕКАП server-linux ================ >>server-linux-copy.log
robocopy \\server-linux\templates\resources\reports \\server-linux\templates\resources\reports.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:server-linux-copy.log
echo ================ ОБНОВЛЕНИЕ server-linux ================ >>server-linux-copy.log
robocopy C:\Program\Resources\Reports \\server-linux\templates\resources\reports /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:server-linux-copy.log
echo ================ БЕКАП server-linux2 ================ >>server-linux2-copy.log
robocopy \\server-linux\templates\resources\reports \\server-linux2\templates\resources\reports.old /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:server-linux2-copy.log
echo ================ ОБНОВЛЕНИЕ server-linux2 ================ >>server-linux2-copy.log
robocopy C:\Program\Resources\Reports \\server-linux2\templates\resources\reports /MIR /Z /E /R:3600 /W:10 /TEE /LOG+:server-linux2-copy.log