回答:
PowerCLIの仕事のように思えます!とにかく、Windowsワークステーションから、とにかく、これが私が持っているものです。
Surly Adminのブログには、環境内のすべてのVMのすべてのスナップショットを取得するためにコピーアンドペーストできるスクリプトもあります。
$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スナップショット。私のやり方があった場合、それらはバックアップ目的と変更のテストのためにのみ存在していました。
vSphereクライアントのクラスターレベルで[ストレージビュー]タブを使用すると、スナップショットによって消費されるスペース(おそらく、あなたが本当に知りたいと思うもの)を表示できます。
そこから始めて、個々のVMにドリルダウンします。バイト(B)の値を持つエントリは、本質的にスナップショットがないことを意味します。
HopelessNoobの答えは、人間が読めるレポートに最適です。私は時々、他のPSオブジェクトに私のものを解析することを好みます。HopelessNoobも非常によく似ています-私たちは両方とも同じコードスニペットからスクリプトを構築するために始めたと思います。
$ 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で動作するすべてのVMのリストをスナップショット付きでダンプするために使用するスクリプトです。非常にシンプルでクリーンです。.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もありません。:-)
残念ながら、Vcenterのシッククライアントには6.0以降この機能がありませんが、GUIで簡単に実行したい場合は別のオプションがあります。6.0または6.5では、vcenter Webクライアント(フラッシュバージョン)を起動します。左側(ナビゲータウィンドウ)で、vcenter、データセンター、またはクラスターのいずれかを選択してから、VMの表示を選択します。「フィルター」ボックスの左側の右側に小さな正方形のアイコンがあります(その上にカーソルを置くと、「クイックフィルターの表示と非表示」が表示されます。その正方形のアイコンをクリックし、「スナップショットがある」ビューには、スナップショットを持つVMのみが表示されるようになりました。
vSphere ClientでvCenterを開きます。案内する
「データストアおよびデータストアクラスタ」カテゴリ
スナップショットを検索する「データストアを右クリック」。(複数のデータストアが各データストアに移動する必要がある場合)
フォルダと検索タブが表示されます。
[検索]をクリックし、ドロップダウンから[仮想マシンのスナップショット]を選択します
検索をクリックします。
そのデータストアに保存されているすべてのスナップショットが表示されます。
スナップショットを右クリックし、「フォルダーに移動」をクリックします
スナップショットが作成されるVMフォルダーに移動します。