运行 多个并行脚本 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
在下面的 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