簡體   English   中英

Shell腳本查找使用KVM / virsh命令創建的虛擬機的IP地址

[英]Shell script to find the IP address of an Virtual machine created by using KVM/virsh command

我正在尋找Shell腳本來查找使用KVM / VIRSH創建的虛擬機的IP地址。

我使用以下步驟將其獲取,但無法找到它。

  1. ping范圍內的IP地址

2.使用Virsh list命令列出所有活動的VM

3.使用Virsh dumpxml域名並投影vm的xml

  1. 使用grep命令並獲取vm的硬件地址

5,顯示每個虛擬機的硬件地址

現在,我想再增加一個步驟,例如使用“ arp -ne”為該特定硬件地址獲取IP地址。

我無法弄清楚如何添加零件。

誰能幫我這個忙。

for i in {1..150}
do
  ping -c 1 -n -q -r  -t 1 -s 1  -W 1   192.168.1.$i > /dev/null &
done


 for name in `virsh list | grep running | awk '{ print $2 }'`
   do
   # printf  "\n$name\n "
    arp -e | grep "`virsh dumpxml  $name | grep "mac address"|sed    "s/.*'\(.*\)'.*/\1/g"`" |
  awk '{ printf  $1 ;  printf  " "  ; printf  $3 "\n" }'
done

當前輸出:

$ ./virshshell.sh
  vm2 52:54:00:4b:7f:41
  vm3 52:54:00:0e:4c:42

我期望的輸出是

 $ ./virshshell.sh
     vm2 52:54:00:4b:7f:41  192.*.*.*
     vm3 52:54:00:0e:4c:42  192.*.*.*

使用nmap進行網絡發現而不是ping 它不僅可以執行ping功能,而且可以執行更多操作,而且運行速度更快,並且可以處理在for循環中執行的網絡范圍掃描。

$ nmap -T5 -n -PE 192.168.4.0/24 > /dev/null
$ ip neigh show | grep 192.168.4 | grep -v FAILED
192.168.4.92 dev eth0 lladdr 54:52:00:90:90:92 REACHABLE
192.168.4.11 dev eth0 lladdr fa:16:3e:fa:ac:07 REACHABLE
192.168.4.91 dev eth0 lladdr 54:52:00:90:90:91 REACHABLE
192.168.4.90 dev eth0 lladdr 54:52:00:90:90:90 REACHABLE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM