gpt4 book ai didi

linux - shell:同时重启一堆服务器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:21 25 4
gpt4 key购买 nike

我希望能够同时重启一堆服务器(在 bash 脚本中)。
目前,我所做的是这样的:

function reboot_servers() {
echo "Rebooting servers..."
for server in "${servers[@]}"
do
sshpass -p 'password' ssh -o StrictHostKeyChecking=no root@$server 'reboot'
done
}

(servers 是一个包含 4 个服务器的数组,有时是 8 个,将来可能会更多)

现在,我知道理论上我不能真正让它们在准确同时重新启动,但我希望它尽可能同时重新启动,并且上述解决方案远从最适合我。
在我当前的脚本中,如果每次迭代平均花费(比如说)几百毫秒(ssh 登录有时会滞后并且不可预测),那么从第一个服务器启动 reboot 命令到最后一个服务器所耗时一次可能相当于几秒钟,这是完全无效的。

我还应该提到,所有服务器中的时钟都是同步的,并且为了给您一些背景信息,上面的函数在与此类似的情况下一遍又一遍地运行;

function main() {
iteration=0

while true
do
echo "------> Iteration $((++iteration)) <------"
wait_random_time
reboot_servers
wait_for_servers

if bug_reproduced
then
echo "Bug was reproduced."
exit 0
else
echo "No reproduction, trying again..."
fi
done
}

我阅读了一些关于 at 命令的内容,但我不确定如何在这里使用它来为我带来好处。

最佳答案

我建议使用 parallel-ssh .

关于linux - shell:同时重启一堆服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44058104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com