Назад | Перейти на главную страницу

Скрипт для удаления снимков VMWare?

Я хотел бы централизованно удалить все неактивные снимки на хосте vMA перед выполнением централизованного резервного копирования виртуальных машин. Я надеюсь, что такой сценарий уже существует ??? Кто-нибудь знает об одном?

Редактировать:

Вот сценарий, использующий базовые инструменты vMA для выполнения работы:

#!/bin/bash
#
# Purpose: List all snapshots for registered and powered-on VMs found on those
#          ESXi hosts listed as VI Fastpass targets (vifptarget -l).
#
# Author: Ryan Bowlby


# VIFP ESXi hosts
esxi_hosts=$( /usr/bin/vifp listservers | awk '$2 ~ /ESXi/ { print $1 }' )

# Have to specify an esxi target before the "--server" opt works.
# http://www.virtuallyghetto.com/2011/01/how-to-automate-cron-vi-fastpass.html
first_esxi=$( echo $esxi_hosts | awk '{print $1}' )
source /opt/vmware/vma/bin/vifptarget -s $first_esxi > /dev/null 2>&1

for host in $esxi_hosts; do
   reg_vms=$( /usr/bin/vmware-cmd --server $host -l 2>/dev/null)
   for vm in $reg_vms; do
      if /usr/bin/vmware-cmd --server $host $vm getstate | grep -q 'getstate() = on'; then
         # print VM name (everything after last /) aka vm.split('/')[-1] ;)
         vm_name="`echo $(basename $vm) | sed 's/\.vmx$//g'`"
         #vm_name=$( IFS='/'; for elem in $vm; do echo $elem; done | tail -1 | sed 's/\.vmx$//g' )
         echo $vm_name
         if /usr/bin/vmware-cmd --server $host $vm hassnapshot | grep -q "1"; then
            echo $vm_name has a snapshot, removing...
            /usr/bin/vmware-cmd --server $host $vm removesnapshots
         fi
      fi
   done
done

Я не знаю целого сценария для этого, но стр. 39 из ЭТОТ В документе VMWare SDK показано, как их создавать с помощью vmsnapshot.pl и snapshotmanager.pl - так что я уверен, что вы могли бы взглянуть на эти сценарии (здесь уже слишком поздно делать это) и увидеть, какие есть варианты.

Очевидно, они поддерживаются вашей vMA.

Изменить - желаемая команда RemoveSnapshot_Task нашел ВОТ.