我有一台远程控制服务器,可用来自动执行命令/脚本等到串联的所有节点。为了提高性能和速度,我想并行运行它。我大约在180个节点中执行命令。在系列赛中,我大约需要2个小时才能完成所有任务的执行。所以我目前正在寻找速度。伪代码如下所示,我使用based64将命令发送到其他节点。我可以使用它执行任何任意复杂的命令。
for host in ${sshconfig[@]}; do
ssh "$host" "echo $COMMAND | base64 -d | bash" &
done
但是我忘了有很多节点,所以我犯了一个错误,所以我的bash脚本为每个节点创建了许多进程,结果,控制服务器的系统崩溃了,它已经关闭。现在,我无法再连接到它了。
我想知道,如何在bash脚本中分配内存?简便的操作ssh
使bash非常适合我的情况,但是我想知道如何通过并行执行bash来提高性能,而又不必担心系统崩溃等问题。
@Kusalananda更新。
—
拉基布·菲哈
我当时在想使用厨师,骨肉,p等服务,但不愿意为他们的服务付费。我将试用Pdsh!我在想制作能够有效分配内存的基于C或C ++的程序有多困难
—
Rakib Fiha
xargs
以更可控的方式并行执行此操作相当容易。您可能没有在bash
脚本中分配内存(但是您显示的脚本看起来根本不像bash
)。