gpt4 book ai didi

mysql - 大规模执行中所有元素的 Bash 关闭

转载 作者:行者123 更新时间:2023-11-30 00:15:45 24 4
gpt4 key购买 nike

我必须关闭我的虚拟机,就像垃圾收集器一样,我的脚本在数据库中找到虚拟机的名称,该数据库是空的并准备关闭。当我路径到虚拟机的大量名称时,如果 echo 是真实的,则输出会遇到麻烦,但是当我尝试关闭它时,它只需要一个质量,并且没有路径到变量。

如何大规模关闭所有元素?并将虚拟机名称路径传递给属性?

arr1=($(/usr/bin/mysql --skip-column-names -u $DB_USER  -p$DB_PASS $DB -e "SELECT VM_NAME FROM VM_LIST Where     BUSY="0" AND POOL='LINUX';"))
echo ${#arr1[@]}

if arr1 -gt 0

then

for availiable_node in "${arr1[@]}"
do
shutdown $availiable_node
echo $availiable_node

最佳答案

虽然我无法理解所有内容,但如果有人想做这样的事件,应该是这样的:

#!/bin/bash
vmNode=(db query )

for node in ${vmNode[*]}
do

echo $node
ssh user@${node} "sudo shutdown -h now" #user should be same on all nodes.
# sudo use is subject to requirement

done

实现此功能的要求:

1) ssh 应该是无密码的

2) sudo 应该是无密码的,并且不需要 tty

如果sudo或ssh不是无密码的,解决方案仍然有效,但您必须为eveynode输入密码两次,一次为ssh,然后为须藤

3) 您从中触发此脚本的节点应该位于 vmNode 数组中的最后一个或不应该出现。

4) 如果查询正在获取节点主机名,则应在 /etc/hosts~/.ssh/known_hosts

中配置它们

这仅适用于操作系统关闭(*nix)。

关于mysql - 大规模执行中所有元素的 Bash 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671881/

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