场景举例:批量获取zk中/dubbo/interface下服务方、消费方的信息,得到的内容中各属性字段不易读取,需要解码。
获取dubbo节点信息:
#!/bin/bash
cluster=$1
idc=$2
sh ./zookeeper/bin/zkCli.sh ls /dubbo > ${idc}_interface.txt
##根据实际情况,排除客户端连接返回的无用信息
cat ${idc}_interface.txt | grep -v "2023-08-09" | grep "\[.*\]" -o | sed 's/, /\n/g;s/\[//g;s/\]//g' > ${idc}_interface_col.txt
for i in `cat ${idc}_interface_col.txt`;do providers=`sh ./zookeeper/bin/zkCli.sh ls /dubbo/$i/providers`;echo $providers;done > ${idc}_providers.txt
for i in `cat ${idc}_interface_col.txt`;do consumers=`sh ./zookeeper/bin/zkCli.sh ls /dubbo/$i/consumers`;echo $consumers;done > ${idc}_consumers.txt
cat ${idc}_providers.txt | sed 's#\%3A\%2F\%2F#\:\/\/#g;s#\%3F#\?#g;s#\%3D#\=#g;s#\%26#\&#g;s#\%2F#\/#g;s#\%2C#\,#g;s#\%3A#\:#g' | grep "\[dubbo.*\]" -o | awk -F']' '{print $1}' | sed 's/\[//g;s/, /\n/g' > ${idc}_providers_col.txt
cat ${idc}_consumers.txt | sed 's#\%3A\%2F\%2F#\:\/\/#g;s#