如何判断当前Linux系统是否安装在VMware上面呢? 因为公司大部分服务器位于VMware上,也有小部分系统部署在物理机上面。今天老大要求统计一下VMware和物理机上服务器的数量,个人简单测试、验证了一下,当然也测试验证了多台服务器,但是限于手头的VMware版本以及Linux版本,不代表所有环境都是正确的,下面是演示一下测试结果:

1: 命令vir-what检测

[root@mylnx01 ~]# virt-what

vmware

如果Linux服务器位于VMware上面,那么这个命令会输出vmware信息,如果是物理机,则没有任何输出信息。

2:dmesg |grep VMware命令检测

[root@mylnx01 ~]# dmesg |grep VMware

scsi 0:0:0:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2

scsi 0:0:1:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2

scsi 0:0:2:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2

scsi 0:0:3:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2

scsi 0:0:4:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2

VMware vmxnet3 virtual NIC driver - version 1.4.3.0-NAPI

VMware PVSCSI driver - version 1.0.1.0-k

VMware vmxnet virtual NIC driver

这里是根据VMware虚拟机的PCI 总线上接驳的一些设备都有VMware字眼;磁盘名有VMware Virtual disk等字样,以及驱动有VMware字样,如上所示。如果是物理机的话,会没有相关输出信息。如下所示:

如何判断Linux系统安装在VMware上?-LMLPHP

3:检测VMwaretools进程,但是这个方法可能失灵,因为有些虚拟机上可能没有安装VMware Tools工具

[root@mylnx01 ~]#  ps -ef | grep vmtoolsd

root      3149     1  0 Jun24 ?        00:25:37 /usr/sbin/vmtoolsd

root     23943 20376  0 14:23 pts/1    00:00:00 grep vmtoolsd

4:通过VMware vSphere Client连接到VMware Workstation上,一台台确认。一来这个也麻烦(只能手工确认,不好批量处理),另外,我也没有VMware Workstation的相关权限。所以上面命令比较方便,快捷!

05-11 15:38