1

我们想使用带有“watch”功能的etcd来改变我们的“/etc/hosts”文件。一个节点应该改变这个值,然后手表应该把改变写在“/etc/hosts”中。

节点 1 输入:

etcdctl put master-server "192.168.10.1 master-server.int.server.io"

Node2 观察:

etcdctl watch master-server | head -3 | tail -1 | tee  >> hosts.file

节点2输出:

192.168.10.1 master-server.int.server.io

这工作正常,但现在我想要一个像这样的多行输出:节点 2 输出:

192.168.10.1 master-server.int.server.io
192.168.10.2 slave1-server.int.server.io
192.168.10.3 slave2-server.int.server.io

我的想法是:

etcdctl put master-server "192.168.10.1 master-server.int.server.io \n192.168.10.2 slave1-server.int.server.io \n192.168.10.3 slave2-server.int.server.io"

但它不起作用。

输出是:

192.168.10.1 master-server.int.server.io \n192.168.10.2 slave1-server.int.server.io \n192.168.10.3 slave2-server.int.server.io

有谁知道处理我的问题的最佳方法?以及如何将多行变成一个值?

谢谢你的帮助。

4

1 回答 1

0

以下内容是否符合您的要求?

export ETCDCTL_API=3
echo -e "hello\nworld" | etcdctl put mykey

并读回来:

etcdctl --write-out=json get mykey | jq .kvs[0].value | sed 's/"//g'  | base64 -d
于 2021-07-10T16:39:20.610 回答