该命令ads2 cls create
产生以下输出:
cluster established ...
nodes {
node {
name = "fdt-c-agx-0002";
address = "http://172.16.11.89:9011/";
state = "3";
}
node {
name = "FDT-C-VM-0094";
address = "http://172.16.11.49:9011/";
state = "3";
}
}
我想要的是找到name
每个节点及其状态,将每个节点分配给一个变量并打印它们,以便输出看起来像:
NODE-1name
有一个状态state
#这符合第一个节点
NODE-2name
有一个状态state
#这符合第二个节点
所以我从 grep like status-nod1="$(ads2 cls create | grep state | cut -d '"' -f 2)"
&开始name-nod1="$(ads2 cls create | grep name | cut -d '"' -f 2)"
。
这行得通,但是找到所有匹配state
和'name'并因此返回
3
3
fdt-c-agx-0002
FDT-C-VM-0094
那么如何按写入顺序输出匹配项,以便每个节点都匹配其状态
这不是最有效的代码,但它会完成这项工作。
将其粘贴到
.sh
文件中(例如node_status.sh
),使其可执行(sudo chmod a+x node_status.sh
),然后运行它(path/to/script/node_status.sh
或者./node_status.sh
如果您在脚本所在的目录中)。这个脚本的好处是,当你添加节点(NODE-3 NODE-4 等)时,脚本可以处理它,并且会给你每个节点的名称和状态(不仅仅是前两个)。您可以拥有 100 个节点,它将给出所有 100 个节点的名称和状态。