运行 多个并行脚本 bash 远程机器上的脚本

Running several scripts in parallel bash scripts on remote machines

在下面的 bash 脚本中,我们想要 运行 在远程机器上并行执行多个脚本

ssh $server_a  /tmp/activate_nodes.bash &
ssh $server_b  /tmp/activate_services.bash &
ssh $server_c  /tmp/activate_components.bash &
ssh $server_d  /tmp/activate_nfs.bash &
.
.
.

不确定将“&”放在脚本末尾还是其他方法?

注意 目标是 运行 25 台 diff 机器上的所有 25 个脚本,因此所有 运行ing 脚本将在几秒钟内完成,而远程机器上的脚本进程仍然 运行 直到结束

运行 这些并行的很好,除了交错输出。要保存输出供以后分析,您还可以 "tee" 日志供以后检查:

#!/usr/bin/env bash
ssh $server_a  /tmp/activate_nodes.bash      2>&1 | tee ${server_a}_$$.log &
ssh $server_b  /tmp/activate_services.bash   2>&1 | tee ${server_b}_$$.log &
ssh $server_c  /tmp/activate_components.bash 2>&1 | tee ${server_c}_$$.log &
ssh $server_d  /tmp/activate_nfs.bash        2>&1 | tee ${server_d}_$$.log &
wait