標籤:xen
華為的雲端運算採用的是xen的虛擬化,有時候我們要大致判斷下主機是否為虛擬機器。
windows主機,直接資源管理員查看硬體裝置。
而linux主機可以用python指令碼來監測
判斷 OpenVZ/Xen PV/UML
判斷 OpenVZ/Xen PV/UML 是最容易的,直接檢查 /proc 下的相關目錄和檔案就可以知道,比如 OpenVZ VPS 上會有 /proc/vz 這個檔案;Xen PV 虛擬機器上會有 /proc/xen/ 這個目錄,並且目錄下有一些東西;UML 上列印 /proc/cpuinfo 會找到 UML 標誌。寫了一個簡單的 Python 指令碼來檢測:
#!/usr/bin/python# check if a linux system running on a virtual machine (openvz/xen pv/uml)import sys, osdef main(): if os.getuid() != 0: print "must be run as root" sys.exit(0) # check OpenVZ/Virtuozzo if os.path.exists("/proc/vz"): if not os.path.exists("/proc/bc"): print "openvz container" else: print "openvz node" # check Xen if os.path.exists("/proc/xen/capabilities"): if (os.path.getsize("/proc/xen/capabilities") > 0): print "xen dom0" else: print "xen domU" # check User Mode Linux (UML) f = open("/proc/cpuinfo", "r"); t = f.read(); f.close() if (t.find("UML") > 0): print "uml"if __name__=="__main__": main()
python判斷xen虛擬化上linux主機是否為虛擬機器