Forse qualcuno si ricorda del mio script per gestire il backup delle macchine virtuali con VMware Server 1.x.
Con VMware Server 2 il vmware-cmd è stato sostituito da vmware-vim-cmd il cui funzionamento è del tutto diverso.

Se in vmware-cmd era necessario indicare percorso completo del file vmx, in vmware-vim-cmd è necessario fornire l'ID della macchina virtuale per poter eseguire qualsiasi operazione su di essa.

Ad esempio:

vmware-vim-cmd vmsvc/power.on 32

Dove 32 è l'ID della mia macchina virtuale I3S01.

Naturalmente è più user-friendly identificare le macchine virtuali per nome anziché per ID, soprattutto per il fatto che spostando la VM da un server ad un altro non è detto che l'ID rimangia invariato.

Eseguendo un:

vmware-vim-cmd vmsvc/getallvms

L'output sarà qualcosa del tipo:
Vmid   Name                        File                             Guest OS         Version
16     KMS00   [standard] kms00/Other Linux 2.6.x kernel.vmx   other26xLinuxGuest    vmx-07
32     I3S01   [standard] i3s01/I3S01.vmx                      winNetStandardGuest   vmx-07
64     I3S02   [standard] i3s02/i3s02.vmx                      other26xLinuxGuest    vmx-07
Da qui è abbastanza semplice risalire all'ID partendo dal nome:
#!/bin/sh

vm="$1"

allvms=$(vmware-vim-cmd vmsvc/getallvms)

# Cerca ID della VM

vmid=$(echo "$allvms" | grep $vm)
vmid=$(echo "$vmid" | awk '{ print substr($1, 1, index($vmid, " ")) }')

echo $vmid

if [ ${#vmid} -gt 0 ]; then

        vmDirectory=$(vmware-vim-cmd vmsvc/get.summary $vmid | grep vmPathName)
        vmDirectory=$(echo "$vmDirectory" | awk '{ print $4 } ')
        vmDirectory=$(echo "$vmDirectory" | awk '{ print substr($1, 1, length($1) - 2) }')
        vmDirectory=$(echo "$vmDirectory" | awk '{ print substr($1, 1, index($1, "/") - 1) }')

        echo "${vmDirectory}/"

fi
Il cui risultato sarà:

i3s00:~# ./vminfo.sh I3S01
32
i3s01/
i3s00:~#


Il percorso si ottiene leggendo vmPathName restituito dall'output di:

vmware-vim-cmd vmsvc/get.summary 32

(in alternativa sempre nel summary è indicato il percorso del file vmx)

Il percorso del datastore non viene indicato dal summary della virtual machine, ma è tuttavia ottenibile dall'output di:

vmware-vim-cmd hostsvc/datastore/info standard

E il backup su nastro è di nuovo funzionante.