Bash 获取KVM来宾vm的IP地址

Bash 获取KVM来宾vm的IP地址,bash,ip,centos7,kvm,Bash,Ip,Centos7,Kvm,有没有一种方法可以使用bash获取KVM客户机的IP地址?我需要将其添加到bash脚本中,以自动化流程,其中一部分需要获取VM的IP地址并将其传递到变量中 我在网上看到了很多东西,但似乎没有一件有效 任何帮助或建议都将不胜感激我编写了一个获取虚拟机ip脚本(您可以从中下载),该脚本使用以下内容获取ip: #!/bin/bash ip=$(for mac in `sudo virsh domiflist $buildname |grep -o -E "([0-9a-f]{2}:){5}([0-9

有没有一种方法可以使用bash获取KVM客户机的IP地址?我需要将其添加到bash脚本中,以自动化流程,其中一部分需要获取VM的IP地址并将其传递到变量中

我在网上看到了很多东西,但似乎没有一件有效


任何帮助或建议都将不胜感激

我编写了一个
获取虚拟机ip
脚本(您可以从中下载),该脚本使用以下内容获取ip:

#!/bin/bash

ip=$(for mac in `sudo virsh domiflist $buildname |grep -o -E "([0-9a-f]{2}:){5}([0-9a-f]{2})"` ; do sudo arp -e |grep $mac  |grep -o -P "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" ; done)
#iphost="$ip   appliance"

echo $ip
HOSTNAME=[your vm name]
MAC=$(virsh domiflist $HOSTNAME | awk '{ print $5 }' | tail -2 | head -1)
arp -a | grep $MAC | awk '{ print $2 }' | sed 's/[()]//g'

virsh命令获取MAC地址,最后一行使用
arp

查找IP地址KVM只是虚拟化堆栈的核心部分。我假设您正在使用libvirt,它正在管理网络?没错,我正在使用libvirt,它正在管理网络。所以我尝试了virsh domifaddr命令,但没有返回任何结果。我在这里遗漏了一些内容,但不确定是什么。virsh domifaddr只返回命名VM的DHCP租约。如果虚拟机未运行或只有静态IP,则不会返回任何内容。