вторник, 20 октября 2015 г.

VMware PowerCLI: скрипт очистки хранилища ESXi от полупустых папок c .png файлами скриншотов

Функционал VM Monitoring - настройка кластера vSphere, делает снимок экрана виртуальной машины и перегружает её в случае отсутствия heartbits от VMware Tools. При этом сам скриншот помещается в папку с файлами виртуальной машины в формате .png. Проблема заключается в том, что при дальнейшем удалении данной виртуалки vSphere оставляет на хранилище хвосты в виде самой папки и файлов скриншотов. Для поиска и удаления этих остатков можно воспользоваться следующим PowerCLI скриптом:

# FQDN of your vCenter Server
$viserver = "your_vcenter_server.name"
#
# Add PowerCLI snapin
Add-PSSnapin vmware.vimautomation.core -ErrorAction:SilentlyContinue
# Connect to VI Server
Connect-VIServer $viserver
# Save location
$loc = Get-Location
# Get all datastores
$dsObject = Get-Datastore
# For each datastore create PSDrive
foreach ($datastore in $dsObject)
{
# Searching only for VMFS type datastores
 if ($datastore.Type -eq "VMFS")
 {
# Create a new PSDrive to current datastore
  New-PSDrive -Location $datastore -name ds -PSProvider VimDatastore -root '\' | Out-Null
  Write-Host "Searchin on datastore" $datastore"..."
# Set location to that drive
  Set-Location ds:
# Get folder's list on datastore
  $dsfolders = Get-ChildItem
# Searching all folders without .vmx, .vmtx files and only with .png files.
  foreach ($dsfolder in $dsfolders)
  {
   if (!(test-path "$dsfolder\*.vmx") -and !(test-path "$dsfolder\*.vmtx") -and (test-path "$dsfolder\*.png"))
   {
# Removing .png files in current folder
    Write-Host "Remove all .png files in folder:" $dsfolder
    Remove-Item "$dsfolder\*.png"
# Removing folder if it's empty
    if ((Get-ChildItem "$dsfolder\*" | Measure-Object).count -lt 1)
    {
     Remove-Item $dsfolder
     Write-Host "Delete:" $dsfolder
    }
   }
  }
# Set previous location
  Set-Location $loc
# Removing PSDrive
  Remove-PSDrive -name ds
 }
}

Данный скрипт позволит почистить все папки на хранилище ESXi формата VMFS, содержащие только файлы формата .png. Вся остальная информация останется нетронутой.
Перед запуском не забудьте исправить FQDN vCenter Server.

Комментариев нет:

Отправить комментарий