PowerShell e o dia a dia do DBA – IV


Continuação – IV / Espaço em Disco – Verificar o Espaço em disco em cada unidade dos servidores.

Todos os scripts eu criei um database chamado DBA no meu servidor central e um schema diario. As tabelas sermpre serão criadas neste schema e database.

ESTE SCRIPT EM PARTICULAR USA OUTRO TXT DE SERVIDORES, POIS NESTE NÃO PASSAMOS AS INSTÂNCIAS E SIM SOMENTE O SERVIDOR. EU O CHAMEI DE SERVIDORESDEFAULT.TXT  e fica

SERVER1
SERVER2
SERVER3

Os dois primeiros são 2008 e o terceiro 2005

Eu o gravo numa pasta chamada c:\dadosps, vocês irão ver esta chamada em todos os scripts

 

Espaço em Disco

¨ Verificar o Espaço em disco em cada unidade dos servidores.

 

Este script anda em todos os servidores, todas as unidades de disco e pega as que estão abaixo de 30% de espaço livre. Ele não retorna o nro de bytes disponiveis , somente o percentual. É o que me interessa.

Criar a Tabela

create table  diario.tb_unidadesdisco(
servidor varchar(50),
data datetime,
unidade char(2),
PercentualLivre tinyint)

Script PS

##########################################################
#Atribui o Dabatase e Server central que receberão os dados
##########################################################

$ServidorCentral = "SERVER1\MSSQLSERVER_1"
$DatabaseCentral = "DBA"

$datas = (get-date).toshortdatestring()

foreach ($svr in get-content "C:\dadosps\servidoresdefault.txt")

   {
      Get-WmiObject -class Win32_PerfFormattedData_PerfDisk_LogicalDisk -ComputerName $svr | where{$_.Name -ne "_Total" -and $_.PercentFreeSpace -lt 30} | foreach {
      $Unidade = $_.name
      $PercetualLivre = $_.PercentFreeSpace

   $sql = "set dateformat dmy insert into diario.tb_unidadesdisco(servidor,data,unidade,PercentualLivre) values (‘$svr’,’$Datas’,’$unidade’,’$PercetualLivre’)"
   Invoke-Sqlcmd -ServerInstance $ServidorCentral -Database $DatabaseCentral -Query $sql

      }
   }

 

Sempre, criar um .ps1 e executar pelo job

I´ll be back

About Laerte Junior

Laerte Junior Laerte Junior is a SQL Server specialist and an active member of WW SQL Server and the Windows PowerShell community. He also is a huge Star Wars fan (yes, he has the Darth Vader´s Helmet with the voice changer). He has a passion for DC comics and living the simple life. "May The Force be with all of us"
This entry was posted in Powershell. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s