我想集中删除vMA主机上的所有非活动快照,然后再执行VM的中央备份。 我希望这样的脚本已经存在了? 任何人都知道吗?
编辑:
这是一个使用基本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
我不知道整个脚本是这样做的,但是这个 VMWare SDK文档的第39页显示了如何使用vmsnapshot.pl和snapshotmanager.pl创build它们 – 所以我相信你可以看看这些脚本(这太迟了在这里做),看看有什么select。
很明显,这些在您的vMA中受支持。
编辑 – 你想要的命令是RemoveSnapshot_Task在这里find。