bash - 在远程机器上以并行 bash 脚本运行多个脚本
问题描述
在以下 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 个脚本,因此所有脚本的运行将在几秒钟内完成,而远程机器上的脚本进程仍将运行直到结束。
解决方案
并行运行这些都很好,除了交错输出。要保存输出以供以后分析,您还可以“发送”日志以供以后检查:
#!/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
推荐阅读
- javascript - 普通 DOM 淡出然后立即淡入
- java - 如何将 ArrayList 写入 Android App 中的文本文件
- c# - ASP.NET - 由于按钮回发,无法在 GridView 上保存更改
- amazon-web-services - AWS API Gateway 私有 API 自定义域名
- parquet - 在数据块中创建具有限定名称的镶木地板文件
- ios - System.Data 在 iOS Unity Build 上抛出 NotSupportedException
- flutter - 如何将 ScrollController 添加到 SliverList 颤动
- javafx - 是否可以在按钮及其边框之间添加空格 [Javafx]
- android - 如何处理firebaseauth令牌过期?
- wordpress - 需要一个 Html5 视频来自动播放声音