这里写目录标题
1. 检测 Linux VPS 是 Xen、OpenVZ 还是 KVM 架构的方法
使用一款叫做 virt-what 的小工具可以用来检测 VPS 具体使用的虚拟化技术。
virt-what 官网是:https://people.redhat.com/~rjones/virt-what/
- 发行源码包:https://people.redhat.com/~rjones/virt-what/files/
- git 源码仓库是:git://git.annexia.org/git/virt-what.git
从 git 源码仓库中可以推测出网站 http://git.annexia.org/ ,然后从中查找 virt-what
,找到其 git 的提交历史网站:http://git.annexia.org/?p=virt-what.git;a=summary ,从而确定其目前最新版本是 1.18。
一、安装
1.1 使用内置软件包管理器安装
- CentOS:
$ sudo yum install virt-what
- Ubuntu:
$ sudo apt-get install virt-what
1.2 编译安装
wget http://people.redhat.com/~rjones/virt-what/files/virt-what-1.18.tar.gz
tar zxvf virt-what-1.18.tar.gz
cd virt-what-1.18/
./configure
make
# make install # 其实不需要安装,下面有步骤,核心就是一个 virt-what-cpuid-helper
经过上面的编译,会生成一个 virt-what-cpuid-helper
的程序,将其拷贝到 /usr/local/libexec
下:
sudo cp virt-what-cpuid-helper /usr/local/libexec
然后执行 virt-what
就就可以了,它是一个 Bash 脚本。
二、使用
$ sudo bash ./virt-what
kvm
上面的示例说明当前的 VPS 采用的是 KVM 虚拟化技术。
三、遇到的问题
Issue 1: 运行shell脚本时报错 [[ : not found
解决方法
在运行至判断表达式时报错,sh
命令无法识别 [[]]
表达式。
最终也找到了问题的解决办法:bash
与 sh
是有区别的,两者是不同的命令,且 bash
是 sh
的增强版,而 [[]]
是 bash
脚本中的命令,因此在执行时,使用 sh
命令会报错,将 sh
替换为 bash
命令即可:bash ./virt-what
。