一鍵查看KVM宿主機上虛擬機IP地址
最近公司一位同事正在為KVM虛擬主機安裝virtio驅動,由於虛擬主機都存在業務,需要臨時查出虛擬主機名稱對應的IP地址及MAC,在於對應系統業務負責人取得聯繫,協商停機維護時間。路過同事工位詢問起處理情況,同事抱怨說道虛擬主機IP@#¥%$^&(*#&*()....,說白了就是不方便查詢KVM虛擬機IP地址,主動請纓寫個一鍵查詢腳本。
腳本中環境變數取名不是太那啥,你懂的,英文不好唄!哈哈 ,完美主義者,請點擊左上角「×」,只能幫到你著勒!
腳本思路:利用ping將內網網段ping一遍,然後利用arp協議緩存記錄,在通過「virsh list」獲取到主機名稱,然後通過主機名稱找到對應主機的MAC地址,然後在通過事先緩存的arp記錄根據MAC地址過濾查出對應的IP地址。你們有沒有更好的辦法喃?
不羅嗦,直接上腳本代碼↓↓↓
英文不好!
英文不好!
英文不好!
重要的事情說三遍!
英文差沒有什麼錯,錯就錯在英文差還要跑出來獻醜,哈哈。
PS:此處應該有張大笑的動態圖。
正兒八經的解釋
arp:緩存arp記錄;
query:查詢當前運行虛擬主機的IP地址,並且附加輸出主機名稱及MAC;
count:虛擬主機數量統計;
name:查詢單個主機IP地址及MAC;
ip:查詢單個主機名稱及MAC;
os:還沒想好如何實現;
看看效果吧
討厭的問題?本想增加一個查詢統計虛擬機主機系統類型功能。通過獲取配置文件「os」標籤中的「machine」屬性,來判斷虛擬主機系統類型,但是最終發現這樣是不可取的,因為「machine」屬性值無法準確體現出虛擬機系統。萬事沒有絕對,你可以將所有虛擬機主機的「machine」屬性值修改為可靠的系統類型的值,除之外我實在沒有想到其他任何辦法勒。
例如:
或者
感謝各位賞臉的閱讀,希望各位為不要吝嗇提出寶貴的意見。
最後為大家送上一句話:你不能解決問題,你就會成為問題。
TAG:Linux背鍋俠 |