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

问题描述 投票:0回答:1

在下面的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台不同的机器上运行全部25个脚本,所以所有脚本的运行将在几秒钟内完成,而远程机器上的脚本将一直运行到结束。

bash shell ssh ps thredds
1个回答
1
投票

并行运行这些都很好,除了交错的输出。 为了保存输出以便以后分析,你也可以 "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
© www.soinside.com 2019 - 2024. All rights reserved.