Add VM Type in Basic Info

Add Virtualization type in basic info.
Inspired from bench.sh
This commit is contained in:
Suhail Haris 2023-01-21 17:14:14 +05:30
commit dc86201120
No known key found for this signature in database
GPG key ID: 8E225274EDCBF899

71
yabs.sh
View file

@ -58,6 +58,75 @@ else
exit 1
fi
# Functions to identify virtualization type of host system
_exists() {
local cmd="$1"
if eval type type > /dev/null 2>&1; then
eval type "$cmd" > /dev/null 2>&1
elif command > /dev/null 2>&1; then
command -v "$cmd" > /dev/null 2>&1
else
which "$cmd" > /dev/null 2>&1
fi
local rt=$?
return ${rt}
}
check_virt() {
_exists "dmesg" && virtualx="$(dmesg 2>/dev/null)"
if _exists "dmidecode"; then
sys_manu="$(dmidecode -s system-manufacturer 2>/dev/null)"
sys_product="$(dmidecode -s system-product-name 2>/dev/null)"
sys_ver="$(dmidecode -s system-version 2>/dev/null)"
else
sys_manu=""
sys_product=""
sys_ver=""
fi
if grep -qa docker /proc/1/cgroup; then
VIRT="Docker"
elif grep -qa lxc /proc/1/cgroup; then
VIRT="LXC"
elif grep -qa container=lxc /proc/1/environ; then
VIRT="LXC"
elif [[ -f /proc/user_beancounters ]]; then
VIRT="OpenVZ"
elif [[ "${virtualx}" == *kvm-clock* ]]; then
VIRT="KVM"
elif [[ "${sys_product}" == *KVM* ]]; then
VIRT="KVM"
elif [[ "${cname}" == *KVM* ]]; then
VIRT="KVM"
elif [[ "${cname}" == *QEMU* ]]; then
VIRT="KVM"
elif [[ "${virtualx}" == *"VMware Virtual Platform"* ]]; then
VIRT="VMware"
elif [[ "${sys_product}" == *"VMware Virtual Platform"* ]]; then
VIRT="VMware"
elif [[ "${virtualx}" == *"Parallels Software International"* ]]; then
VIRT="Parallels"
elif [[ "${virtualx}" == *VirtualBox* ]]; then
VIRT="VirtualBox"
elif [[ -e /proc/xen ]]; then
if grep -q "control_d" "/proc/xen/capabilities" 2>/dev/null; then
VIRT="Xen-Dom0"
else
VIRT="Xen-DomU"
fi
elif [ -f "/sys/hypervisor/type" ] && grep -q "xen" "/sys/hypervisor/type"; then
VIRT="Xen"
elif [[ "${sys_manu}" == *"Microsoft Corporation"* ]]; then
if [[ "${sys_product}" == *"Virtual Machine"* ]]; then
if [[ "${sys_ver}" == *"7.0"* || "${sys_ver}" == *"Hyper-V" ]]; then
VIRT="Hyper-V"
else
VIRT="Microsoft Virtual Machine"
fi
fi
else
VIRT="Dedicated"
fi
}
# flags to skip certain performance tests
unset PREFER_BIN SKIP_FIO SKIP_IPERF SKIP_GEEKBENCH PRINT_HELP REDUCE_NET GEEKBENCH_4 GEEKBENCH_5 DD_FALLBACK IPERF_DL_FAIL JSON JSON_SEND JSON_RESULT JSON_FILE
GEEKBENCH_5="True" # gb5 test enabled by default
@ -242,6 +311,8 @@ DISTRO=$(grep 'PRETTY_NAME' /etc/os-release | cut -d '"' -f 2 )
echo -e "Distro : $DISTRO"
KERNEL=$(uname -r)
echo -e "Kernel : $KERNEL"
check_virt
echo -e "VM Type : $VIRT"
# Function to get information from IP Address using ip-api.com free API
function ip_info() {