Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование при потере пинга (http://forum.oszone.net/showthread.php?t=210651)

Butunin Klim 06-07-2011 22:08 1708530

Копирование при потере пинга
 
Если основной сервер server_best

Есть общий сервер server_all с шарой rezerv1 и rezerv2
\\server_all\rezerv1
\\server_all\rezerv2
где лежат файлы

Есть 2 сервера srv1 и srv2 с шарами in
\\srv1\in
\\srv2\in

При потере связи с сервером server_best нужно скоприровать файлы с \\server_all\rezerv1 в \\srv1\in
При восстановлении связи с server_best скопировать \\server_all\rezerv2 в \\srv2\in

Есть мысли?! не пойму как написать...

Foreigner 07-07-2011 06:47 1708673

Butunin Klim,
Сам батник не представляет сложности, вопрос в том как он будет запускаться, не висеть же ему все время.
Код:

@echo off
1>nul ping -n 2 server_best && goto:eof

xcopy /z /e /h /r /k /o /x /y "\\server_all\reserv1" \\serv1\in\
xcopy /z /e /h /r /k /o /x /y "\\server_all\reserv2" \\serv2\in\


camope3 07-07-2011 10:29 1708753

Butunin Klim сделай 2 батника скажем eee.bat и yyy.bat
eee.bat заполни так:
Код:

:pin
ping -n 2 172.172.172.1 | find "TTL=" > nul
if errorlevel 1 goto :cop
if errorlevel 0 goto :pin
:cop
SET folderin="\\server_all\rezerv1"
SET folderout="\\srv1\in"
xcopy %folderin% %folderout% /Y
start yyy.bat
exit

yyy.bat заполни так:

Код:

:pin
ping -n 2 172.172.172.1 | find "TTL=" > nul
if errorlevel 1 goto :pin
if errorlevel 0 goto :cop
:cop
SET folderin="\\server_all\rezerv2"
SET folderout="\\srv2\in"
xcopy %folderin% %folderout% /Y
start eee.bat
exit

Вместо 172.172.172.1 вбей ай пи сервера server_best
Как уже сказал Foreigner батники будут висеть все время если это мешает работе можеш конвертнуть их в exe с скрытым режимом работы Bat To Exe Converter как раз для этого.

amel27 07-07-2011 12:53 1708858

Цитата:

Цитата camope3
сделай 2 батника »

зачем два?
Код:

@Echo Off
SETLOCAL EnableDelayedExpansion

Set $F=XCopy /Z/E/H/R/K/Y "\\server_all\reserv1" \\serv1\in\
Set $T=XCopy /Z/E/H/R/K/Y "\\server_all\reserv2" \\serv2\in\

:loop
(ping -n 3 server_best >nul && set "$X=$T" || set "$X=$F"
 if not "%$X%"=="!$X!" if not "%$X%"=="" call %%!$X!%%  )
goto:loop

P.S. насчет IP согласен, для PING это лучше чем имя


Время: 07:17.

Время: 07:17.
© OSzone.net 2001-