riconoscere una macchina virtuale da linea di comando


Linux tips

A volte, sulla nostra macchina GNU/Linux, abbiamo la necessità di riconoscere se si tratta di una macchina fisica reale o se è virtuale.

La macchina virtuale è ospitata da una macchina fisica, ma l’istanza che gira ricrea una macchina virtuale che è diversa, quanto meno a livello di disco messo a disposizione, spesso per la memoria RAM usata. Un ambiente di virtualizzazione quale possa essere Xen Server, VM Ware, Hyper-V, viene installato su una macchina fisica ben carrozzata. Con tantissima RAM, magari con un server di Storage. Ogni macchina virtuale che se ne può ricavare avrà solo una parte di tutta la memoria RAM.

Sotto Linux esiste la possibilità di capire se si tratta di una macchina fisica, o virtuale.

Come?

Basta usare questo script BASH:

#!/bin/bash

checkVar=$(cat /proc/cpuinfo | grep -i hypervisor)

if [ -z "$checkVar" ];
then
 if [ -d "/proc/vz/" ];
 then
   checkVar=$(ls -al /proc/vz/)
 else
   checkVar=$(dmesg | grep -i virtual | grep -i -e vbox -e virtualbox -e "virtual box" -e vmware -e kvm -e bochs -e qemu -e xen -e "virtual hd" -e "virtual cd")
 fi
fi

if [ -z "$checkVar" ];
then
 echo "Fisica"
else
 echo "Virtuale"
fi
Advertisements

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...