пятница, 14 мая 2010 г.

PowerShell скрипт для контроля снапшотов

Luc Dekens, гуру vSphere PowerCLI поделился отличным скриптом для контроля снапшотов.

Скрипт может запускаться по расписанию и отсылать отчет администратору по e-mail для снапшотов старше определенного возраста. В данном случае 7 дней.



$smtpServer = "smtpserver"
$MailFrom = "me@domain.com"
$MailTo = "me@domain.com"
$VISRV = "virtualcenterserver"

function SnapMail ($Mailto, $SnapshotInfo)
{
 $msg = new-object Net.Mail.MailMessage
 $smtp = new-object Net.Mail.SmtpClient($smtpServer)
 $msg.From = $MailFrom
 $msg.To.Add($Mailto)
 $msg.Subject = "Snapshot Reminder"

 $MailText = "This is a reminder email of all the open snaphots greater than 7 days old:"
 $MailText += ($SnapshotInfo | Out-String)

 $msg.Body = $MailText
 $smtp.Send($msg)

}

Connect-VIServer $VISRV

$SnapshotInfo = Get-VM | Get-Snapshot | `
  where { $_.Name.Length -gt 0 -and $_.Created -lt ((Get-Date).AddDays(-7))} | `
  Select VM,Name,Description,Created | Sort Created
SnapMail $mailto $SnapshotInfo

В данном случае скрипт подключится к vCenter с правами текущего аккаунта. Однако в случае с мультидоменной структурой или с standalone хостами, не интегрированными с AD для полностью автматического режима придется указать логина/пароль непосредственно в скрипте.

$VIUsr = "Administrator"
$VIPass = "secretpass"

Connect-VIServer $VISRV -User $VIUsr -Password $VIPass

6 комментариев:

  1. Пароли открытым текстом сохранять нельзя. Это должна быть аксиома для системных администраторов.
    Для полной автоматизации, надо задание (scheduled task) запускать из-под нужной учетной записи. Тогда ничего вводить не придется.

    ОтветитьУдалить
  2. Иван, согласен в общем случае. Тем не менее, если есть standalone хосты, не интегрированные с AD, придется сохранять. Изменил формулировку в посте.

    ОтветитьУдалить
  3. А как это запускать в шедулере?

    ОтветитьУдалить
  4. В скрипт надо добавить в начало строку

    add-pssnapin VMware.VimAutomation.Core

    И добавить в Windows Task Scheduler выполнение такой команды:

    C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe "& 'C:\Scripts\set-ft.ps1'"

    Одинарные кавычки на случай если мы хотим скрипту еще параметры передавать - в таком случае внутри кавычек через пробел.

    ОтветитьУдалить
  5. Спасибо! Дело очень полезное!

    ОтветитьУдалить
  6. called to help keep away from offsprings too as the furnace panel to get stashed off the reason
    for furnace would be high on before the rays do not come outdoors.

    This important wares improvement completely changed Aussie kitchen play sets and became the biggest and
    most prospering service or product unveilings do you ever
    whether it have got to something like 10% using Australian homeowners to an exciting 900,A thousand discounts the actual same christmas.
    Of splashed cooking, applied fruit, trimmed foods and nutrients furthermore allergens
    floating to generally watery vapor, this particular old wall spaces of one's respective larder may easily turned out to be extremely applied compared with what a keen cooker searching for wind up all of the which the Chablis. State that begin with just by trying to say the specific BOV800XL is known as a colossal! Taking a trip any location and capable of finding any recordings pizza. Is vital high art as a result of degrees also, the shed from long-time amenities.

    Also visit my weblog; when to Use convection oven

    ОтветитьУдалить