我们有多个由vCenterpipe理的ESXi服务器; 有没有办法获得所有虚拟机中所有快照的列表?
听起来像是PowerCLI的工作! 那么,无论如何,从Windows工作站,这是我所拥有的。
Get-Snapshot
Surly Admin的博客甚至还有一个脚本,您可以通过复制面食来获取环境中所有虚拟机的所有快照,为了您的方便,我将在下面发布这些快照 。
$Report = Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created If (-not $Report) { $Report = New-Object PSObject -Property @{ VM = "No snapshots found on any VM's controlled by $VIServer" Name = "" Description = "" Size = "" Created = "" } } $Report = $Report | Select VM,Name,Description,Size,Created | ConvertTo-Html -Head $Header -PreContent "<p><h2>Snapshot Report - $VIServer</h2></p><br>" | Set-AlternatingRows -CSSEvenClass even -CSSOddClass odd
Grrr … VMware快照。 如果我有自己的方式,他们只能用于备份和testing更改。
您可以使用vSphere Client中群集级别的“存储视图”选项卡来查看快照占用的空间( 这可能是您真正有兴趣了解的内容 )。
从那里开始,然后深入到各个虚拟机。 在字节(B)中具有值的条目基本上意味着没有快照。
HopelessNoob的答案非常适合人类可读的报告。 有时候我更喜欢把我的东西parsing成其他的PS对象。 这也是非常相似的HopelessNoob的 – 我想我们都从相同的代码片段开始build立我们的脚本:
$ VIServer =“vsphere.ad.example.com”
If (-not (Get-PSSnapin VMware.VimAutomation.Core)) { Try { Add-PSSnapin VMware.VimAutomation.Core -ErrorAction Stop } Catch { Write-Host "Unable to load PowerCLI, is it installed?" -ForegroundColor Red; Break } } Connect-VIServer $VIServer -Credential (Get-Credential) | Out-Null Get-VM | Get-Snapshot | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created | FT
得到:
VM Name Description Size Created -- ---- ----------- ---- ------- ENETSXS2 VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 19.28 GB 8/11/2014 8:42:18 AM ENETSDFS-BS VEEAM BACKUP TEMPORARY SNAPSHOT Please do not delete this sn... 16.30 GB 8/11/2014 5:24:44 AM
然后,您可以将其传入Remove-Snapshot或过滤它或其他任何内容。
这里是我们用来转储所有虚拟机的列表的脚本,在PowerCLI中工作。 这是非常简单和干净。 它会通过.csv文件将结果转储到本地桌面。
# Possible "Select-Object -Property" variables: Description, Created, Quiesced, PowerState, VM, VMId, Parent, ParentSnapshotId, ParentSnapshot, Children, SizeMB, SizeGB, IsCurrent, IsReplaySupported, ExtensionData, Id, Name, Uid, Client get-vm | get-snapshot | Select-Object -Property vm,created,sizeGB,name,description | Export-Csv -Path C:\Users\$env:username\Desktop\snapshots.csv
即使答案已被接受,我想指出check_vmware_snapshots 。
这是一个Nagios / Icinga 插件,用于检查VMWare ESXi / vSphere环境中VM的快照时间和数量。
这取决于来自“VMware-vSphere-CLI-5.5.0”的Perl / VMware :: VIRuntime,所以这次没有PowerCLI或-shell。 🙂
或者在MS SQL中运行以下查询(查询基于sql2008和vcenter 5.1)
select t.ID, t.NAME as VMName, s.SNAPSHOT_NAME as SnapshotName from [VCDB].[dbo].[VPX_SNAPSHOT] s, [VCDB].[dbo].[VPX_ENTITY] t where s.VM_ID = t.ID order by t.ID