0

我有一些批处理文件需要在位于同一网络上的 6 台远程服务器上按以下顺序异步运行,并且所有服务器都具有共同的用户名和密码才能登录。我已将Master.bat文件放在 Server5 上。

STEP1 :Run file1.bat on 4 different servers (Server1, Server2, Server3, Server4) in parallel           
STEP2 :Run file2.bat on 2 different servers (Server5, Server6) in parallel                                                  
STEP3 :Run file3.bat on Server5 (which is local server in my case as Master.bat is on Server5 only )                                                                                      
STEP4 :Run file4.bat on 2 same servers as in STEP2 (Server5, Server6) in parallel                                   
STEP5 :Run file5.bat on 4 same servers as in STEP1 (Server1, Server2, Server3, Server4) in parallel  

我计划这样做如下:

服务器列表1.txt:

Server1 ip
Server2 ip
Server3 ip
Server4 ip

服务器列表2.txt:

Server5 ip
Server6 ip

大师.bat:

@echo off 
setlocal enabledelayedexpansion
for /F "delims= " %i in (C:\test\Serverlist1.txt) do ( psexec \\%i C:\test\file1.bat )
for /F "delims= " %i in (C:\test\Serverlist2.txt) do ( psexec \\%i C:\test\file2.bat )
call file3.bat
for /F "delims= " %i in (C:\test\Serverlist2.txt) do ( psexec \\%i C:\test\file4.bat )
for /F "delims= " %i in (C:\test\Serverlist1.txt) do ( psexec \\%i C:\test\file5.bat )

我还没有测试过,所以不确定Master.bat文件中的多个FOR循环是否会相互等待完成?我应该将这些FOR循环放在其他批处理文件中,然后在Master.bat中调用它们吗?这一切对我来说似乎有点冗长。有什么简单的方法可以做到这一点吗?需要帮忙 !

编辑1

文件1.bat

taskkill /f /im firefox.exe
net stop W3SVC
sc config W3SVC start= demand
net start W3SVC

我希望 file1.bat 等到收到“SUCCESS”信号。我应该把waitfor SUCCESS命令放在 file1.bat 文件的哪里?

在上面的Master.bat文件中,我应该插入命令以向file1.batwaitfor /SI SUCCESS发送信号以开始运行?

实际上我必须为所有五个批处理文件定义不同的信号名称,以便我可以按照上面提到的 5 个步骤依次运行它们。

4

1 回答 1

0

一个。一种选择是在每台服务器上依次运行所有命令:例如:在 Server1、S2、S3、S4 上运行 bat1,在 S5、S6 上运行 bat2 等

湾。如果选项a。不适合你,我没有看到一个简单的解决方案:

  1. 为每个步骤创建一个 ServerlistX.txt 文件(带有必要的服务器 IP)。
  2. 设置步长=0
  3. 第一步调用所有服务器。
  4. 监控所有服务器批次是否成功完成。在这里您可以设置特定的窗口名称并使用tasklist /FI ...命令按名称和窗口名称过滤进程,并关闭子窗口。检查之间的等待可以通过ping命令“ ping localhost>nul”来模拟。它将持续约 3 秒。
  5. 设置步长=步长+1
  6. 检查 Step 是否不超过最大值,如果是则退出。
  7. 转到第 3 步。
于 2013-11-15T19:28:33.203 回答