你好,
有没有办法看到/导出的主机名和IP的虚拟机的API通过cURL?
有人能举个例子来提取这个信息吗?
谢谢
问候
cURL并不是真正用来作为过滤机制的,但是可以通过将cURL输出设置为一个变量,然后使用egrep来提取所需的字符串来实现这一点。
下面的代码将为您提供从返回的整个JSON中过滤出来的信息。我用API的V2测试了这个:
/ PrismGateway /服务/ rest /版本/ vm / ?长度= 1 &include_vm_nic_config = true
我真的建议使用Python或JQ模块解析JSON输出的键值对,而不是试图egrep它。它会干净得多:
https://stedolan.github.io/jq/
下面的代码将为您提供从返回的整个JSON中过滤出来的信息。我用API的V2测试了这个:
/ PrismGateway /服务/ rest /版本/ vm / ?长度= 1 &include_vm_nic_config = true
代码:
输出=$(curl -k -X GET 'https://{{IP_ADDRESS}}:9440/PrismGateway/services/rest/v2.0/vms/?length=1&include_vm_nic_config=true' -H '授权:基本{{AuthGuid}}=')
回声输出美元| egrep - o’”的名字 ": *"[^"]*"|" ip_address ": *"[^"]*"'
我真的建议使用Python或JQ模块解析JSON输出的键值对,而不是试图egrep它。它会干净得多:
https://stedolan.github.io/jq/
谢谢你的回答
@rhunt
是否可以用sed提取'ipAddresses'的内容?例如:
:“hypervisorType kKvm”,
“ipaddress”:(
“172.10.10.10”
],
“memoryCapacityInBytes”:4294967296,
是否可以用sed提取'ipAddresses'的内容?例如:
:“hypervisorType kKvm”,
“ipaddress”:(
“172.10.10.10”
],
“memoryCapacityInBytes”:4294967296,
Sed会更难一点。您将不得不使用替换来只打印您想要的数据,而不是整个行。我只使用过用于文件行替换。
我认为sed的正则表达式应该类似这样,以得到您上面所列的内容。测试:
我认为sed的正则表达式应该类似这样,以得到您上面所列的内容。测试:
代码:
\“hypervisorType \”,\“[a-zA-Z0-9] + \”,\“ipaddress \”:\[\[0 - 9]{1,3}\”。[0 - 9]{1,3}\。[0 - 9]{1,3}\。[0 - 9]{1,3} \ \], \“memoryCapacityInBytes \”:\ d +