同时一个接一个地执行两个所有服务器组的特定命令

2024-04-18 20:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要同时在6台服务器上执行命令1和命令2,然后我需要运行命令3和命令4。你知道吗

#!/bin/sh
#Instance details
Server1="<Server1>"
Server2="<Server2>"
Server3="<Server3>"
Server4="<Server4>"
Server5="<Server5>"
Server6="<Server6>"
ssh root@$Server1 "command1" &
ssh root@$Server1 "command2" &
ssh root@$Server2 "command1" &
ssh root@$Server2 "command2" &
ssh root@$Server3 "command1" &
ssh root@$Server3 "command2" &
ssh root@$Server4 "command1" &
ssh root@$Server4 "command2" &
ssh root@$Server5 "command1" &
ssh root@$Server5 "command2" &
ssh root@$Server6 "command1" &
ssh root@$Server6 "command2" &
wait
ssh root@$Server1 "command3" &
ssh root@$Server1 "command4" &
ssh root@$Server2 "command3" &
ssh root@$Server2 "command4" &
ssh root@$Server3 "command3" &
ssh root@$Server3 "command4" &
ssh root@$Server4 "command3" &
ssh root@$Server4 "command4" &
ssh root@$Server5 "command3" &
ssh root@$Server5 "command4" &
ssh root@$Server6 "command3" &
ssh root@$Server6 "command4" &

有没有更好的方法,因为我有大约10个服务器和10个命令。你知道吗

请帮助一个简单和机器人的方式。你知道吗


Tags: 命令服务器root执行命令sshserver1command1server6
1条回答
网友
1楼 · 发布于 2024-04-18 20:25:32
#!/bin/bash
cmds=( 
    'command1; command2'
    'command3; command4'
)
servers=( Server1 Server2 Server3 Server4 Server5 Server6 )

for c in "${cmds[@]}"; do
    for s in "${servers[@]}"; do 
        ssh root@"$s" "$c" &
    done
    wait
done

相关问题 更多 >