首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析virsh输出

解析virsh输出
EN

Stack Overflow用户
提问于 2020-08-29 02:17:48
回答 1查看 454关注 0票数 0

有没有办法强制virsh以可解析的方式打印信息?像json一样

我想写一个一行的shell命令来获取VM的IP地址,但是virsh打印出来的方式对脚本不是很友好:

代码语言:javascript
复制
# virsh domifaddr myvm
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet1      52:54:00:b9:58:64    ipv4         192.168.130.156/24

我正在寻找一种方法来强制它至少不打印标题,这样我就可以很容易地从输出中获得'192.168.130.156‘

这是我能做的最好的事情:

代码语言:javascript
复制
# virsh -q domifaddr myvm | awk '{print $4}' | cut -d/ -f 1
192.168.130.156
EN

回答 1

Stack Overflow用户

发布于 2020-12-04 04:42:38

一种选择是在您要从中提取IP信息的域上安装qemu-guest-agent

在那里,您可以在主机上执行以下命令,以获取JSON格式的详细网络接口列表:

代码语言:javascript
复制
ubuntu@host:~$ virsh qemu-agent-command my-guest '{"execute":"guest-network-get-interfaces"}'
{"return":[{"name":"lo","ip-addresses":[{"ip-address-type":"ipv4","ip-address":"127.0.0.1","prefix":8},{"ip-address-type":"ipv6","ip-address":"::1","prefix":128}],"statistics":{"tx-packets":22,"tx-errs":0,"rx-bytes":2816,"rx-dropped":0,"rx-packets":22,"rx-errs":0,"tx-bytes":2816,"tx-dropped":0},"hardware-address":"00:00:00:00:00:00"},{"name":"eth0","ip-addresses":[{"ip-address-type":"ipv4","ip-address":"1.2.3.4","prefix":22},{"ip-address-type":"ipv6","ip-address":"abcd::1234:ee:ab12:e31d","prefix":64}],"statistics":{"tx-packets":11231,"tx-errs":0,"rx-bytes":40717370,"rx-dropped":0,"rx-packets":19744,"rx-errs":0,"tx-bytes":890354,"tx-dropped":0},"hardware-address":"01:02:00:03:04:05"}]}

您的json可以根据您的喜好进行解析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63639017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档