如何使用 pssh 使用不同的命令运行多个服务器?

如何使用 pssh 使用不同的命令运行多个服务器?

我需要测试具有多个远程服务器的分布式系统,因此我在主服务器上使用 pssh 来控制其他服务器。这里需要使用不同的命令运行多个服务器,例如

在服务器201上,需要运行

java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

在服务器202上,需要运行

java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

在服务器 203 中,需要运行

java -jar test.jar 9001 **.**.**.** 9005
java -jar test.jar 9001 **.**.**.** 9006

...

所有服务器信息已保存到 hosts.txt 中用户名@服务器格式。那么如何在主服务器中使用 pssh 来运行命令呢?

答案1

pssh用于在不同的服务器上运行完全相同的命令,您的示例表明您想在不同的服务器上运行不同的命令(命令的开头都相同,但最后一个数字不同)。

您可以做的是将这些命令放入每个相应服务器的脚本文件中,确保每个服务器上的脚本文件调用相同,然后使用pssh -i -h hosts.txt script.sh

例如,在服务器 201 上输入script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

并在服务器 202 上输入script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

ETC。

然后将其放入script.sh将运行该命令的用户的 $PATH 中或者提供该脚本的完整路径,并且不要忘记使该脚本在服务器上可执行。

相关内容