Recuperare l'indirizzo ip di una VM

Da Mikipedia.

Per recuperare l'indirizzo IP di una VM, salvare il seguente script

#!/bin/bash

[ -z $1 ] && {

       echo -e "\n$( basename $0 ) <vmid>\n"
       exit 1

}

qm list | egrep "^[ ]+$1" &>/dev/null || {

       echo -e "\nMachine with vmid '$1' doesn't exists\n"
       exit 1

}

VM_NAME=$( qm config $1 | egrep '^name:' | awk '{ print $2 }' )
echo -e "\nGetting ip of vm '$VM_NAME' ($1)\n"


( qm config $1 | egrep '^net[0-9]{1}' ) | while read NET; do

       IFACE=$( echo $NET | awk '{ print $1 }' | sed s/:// )
       echo "IFACE=$IFACE"
       CARD=$( echo $NET | awk '{ print $2 }' | cut -d= -f 1 )
       echo "CARD=$CARD"
       MAC=$( echo $NET | awk '{ print $2 }' | cut -d, -f 1 | cut -d= -f 2 )
       MAC=${MAC,,}
       echo "MAC=$MAC" 
       BRIDGE=$( echo $NET | awk '{ print $2 }' | cut -d, -f 2 | cut -d= -f 2 )
       echo "BRIDGE=$BRIDGE"
       IP=$( arp -n | grep -i 6e:24:5f:c3:44:61 | awk '{ print $1 }' )
       echo -e "IP=$IP\n"      

done

nel file /usr/local/sbin/virt-addr

  • Rendere il file eseguibile
chmod +x /usr/local/sbin/virt-addr
  • Lo script è pronto per l'utilizzo. Immaginiamo di desiderare l'IP della vm con id 100:
virt-addr 100