Usuário com melhor resposta
SCRIPT DE MONITORAMENTO

Pergunta
-
Bom dia pessoal,
Alguém pode me ajudar, estou precisando de alguns scripts que façam os seguintes monitoramentos:
1- verifique espaço em disco e se estiver abaixo do programado enviar um e-mail para o analista.
2- verificar um arquivo txt por data, tipo, eu tenho um backup feito pelo robocopy que me gera um txt diário, queria saber quando esse txt não for gerado.
3- ou algum script que gere um log informando que o arquivo txt está sendo gerado normalmente
Agradeço a atenção de todos vocês.
Mauro Sérgio
Respostas
-
Olá,
Segue o script para arquivo (o anterior varria uma pasta inteira)
Path = "C:\informa.txt"
strdata = 2 'QUANTIDADE DE DIAS ANTERIOR PARA VALIDAR O ARQUIVO
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Arquivo = ObjFSO.GetFile(Path)
If Not ObjFSO.FileExists(Path) Then
WriteLog Path & " - não é uma pasta válida(A pasta não existe)."
WScript.Quit
End If
if DateDiff("d",Arquivo.datecreated,now) > strdata Then
wscript.echo "O arquivo " & Arquivo.name & " é mais antigo(s) que " & CStr(strData) &" dias. será enviado email"
Envia_Alerta Arquivo.name
Else
wscript.echo "O arquivo " & Arquivo.name & " não é mais antigo(s) que " & CStr(strData) &" dias. não será enviado email"
End if
Sub Envia_Alerta(strArquivo)
Set objEmail = CreateObject("CDO.Message")
'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "servidor@contoso.msft"
objEmail.To = "jesiel@nwtraders.msft"
objEmail.Subject = "ALERTA DE FALTA DE ARQUIVO"
objEmail.TextBody = "ARQUIVO EM FALTA:" & strArquivo
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub
Poste os resultados.
Até mais,
Jesiel
Obs.: Se útil, classifique a resposta
- Marcado como Resposta mauroserggio sexta-feira, 27 de março de 2009 20:29
-
Olá,
Está correto, tente o script abaixo: (verifique se o IP que você está colocando está aberto)
Dim strNome
'CONSTANTES NAO ALTERAR
Const HARD_DISK = 3
strComputer = "."
'COLOQUE A PORCENTAGEM LIMITE
nLimite = 30
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objItem In colItems
strNome = objItem.Name
Next
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
wscript.echo (objDisk.FreeSpace * 100) /objDisk.Size
if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
wscript.echo "ultrapassou o limite, será enviado email"
Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
Else
wscript.echo "Nao ultrapassou o limite, nao envia email"
End if
Next
Sub Envia_Alerta(nEspaco)
Set objEmail = CreateObject("CDO.Message")
'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "suporte@verdesmares.com.br"
objEmail.To = "maurosergio@diariodonordeste.com.br"
objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
objEmail.TextBody = "ESPAÇO EM DISCO: " & nEspaco
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub
Poste os resultados.
Até mais,
Jesiel
Obs.: Se útil, classifique a resposta
- Marcado como Resposta mauroserggio sexta-feira, 27 de março de 2009 20:28
Todas as Respostas
-
Olá,
Para verificar o HD, segue o script abaixo:
Dim strNome
'CONSTANTES NAO ALTERAR
Const HARD_DISK = 3
strComputer = "."
'COLOQUE A PORCENTAGEM LIMITE
nLimite = 30
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objItem In colItems
strNome = objItem.Name
Next
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
wscript.echo (objDisk.FreeSpace * 100) /objDisk.Size
if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
End if
Next
Sub Envia_Alerta(nEspaco)
wscript.echo nEspaco
Set objEmail = CreateObject("CDO.Message")
'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "servidor@contoso.msft"
objEmail.To = "jesiel@nwtraders.msft"
objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
objEmail.TextBody = "Computador: " & strNome & " Disco: " & objDisk.DeviceID & "Espaço Disponivel: " & nEspaco & " %"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.10.1" '<-informe seu servidor smtp
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub
Altere os endereços de email, o ip do servidor smtp e a porcentagem que você quer.
Poste os resultados.
Até mais,
Jesiel
Obs.: Se útil, classifique a resposta
-
Olá,
Segue abaixo o script para validar a data de criação de um arquivo:
Option Explicit
Dim Path
Dim ObjFSO, Folder, MyFiles, MySubFolders, MyFolder
Dim ArqData, strData
On error resume next
Path = "C:\teste"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
strdata = 2 'QUANTIDADE DE DIAS ANTERIOR PARA VALIDAR O ARQUIVO
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Folder = ObjFSO.GetFolder(Path)
Set MyFiles = Folder.files
If Not ObjFSO.FolderExists(Path) Then
WriteLog Path & " - não é uma pasta válida(A pasta não existe)."
WScript.Quit
End If
i=0
IF MyFiles.Count <> 0 Then
For Each MyFiles in Folder.Files
wscript.echo DateDiff("d",myfiles.datecreated,now)
if DateDiff("d",myfiles.datecreated,now) > strdata Then
wscript.echo "O arquivo " & myfiles.name & " é mais antigo(s) que " & CStr(strData) &" dias"
End if
Next
end if
Se você quer mandar um email, basta pegar a funçao Envia_Alerta script anterior que eu fiz e adicionar onde está a linha:
wscript.echo "O arquivo " & myfiles.name & " é mais antigo(s) que " & CStr(strData) &" dias"
Até mais,
Jesiel
Obs.: Se útil, classifique
-
olá Jasiel, obrigado plor responder, olha, fiz como você falou mas não estou recebendo nenhuma mensagem, estou ancaminhando o script para que vc possa analisar e me dizer onde estou errando: vale lembrar que o arquivo que estou monitorando é um txt
Option Explicit
Dim Path
Dim ObjFSO, Folder, MyFiles, MySubFolders, MyFolder
Dim ArqData, strData
On error resume nextPath = "C:\informa.txt"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
strdata = 2 'QUANTIDADE DE DIAS ANTERIOR PARA VALIDAR O ARQUIVOSet ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Folder = ObjFSO.GetFolder(Path)
Set MyFiles = Folder.files
If Not ObjFSO.FolderExists(Path) Then
WriteLog Path & " - não é uma pasta válida(A pasta não existe)."
WScript.Quit
End If
i=0IF MyFiles.Count <> 0 Then
For Each MyFiles in Folder.Files
wscript.echo DateDiff("d",myfiles.datecreated,now)
if DateDiff("d",myfiles.datecreated,now) > strdata Then
wscript.echo "O arquivo " & myfiles.name & " é mais antigo(s) que " & CStr(strData) &" dias"
wscript.echo
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "atendimento@verdesmares.com.br"
objEmail.To = "suporte@verdesmares.com.br"
objEmail.Subject = "Monitor Servidor GVM"
objEmail.Textbody = "arquivo atualizado com sucesso."
objEmail.Send
End if
Next
end if -
o script do disco funciona mas não consigo receber e-mail sobre a informação segue o modelo
Dim strNome
'CONSTANTES NAO ALTERAR
Const HARD_DISK = 3
strComputer = "."'COLOQUE A PORCENTAGEM LIMITE
nLimite = 30Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objItem In colItems
strNome = objItem.Name
NextSet colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")For Each objDisk in colDisks
wscript.echo (objDisk.FreeSpace * 100) /objDisk.Size
if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
End if
Next
Sub Envia_Alerta(nEspaco)
wscript.echo nEspaco
Set objEmail = CreateObject("CDO.Message")'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "suporte@verdesmares.com.br"
objEmail.To = "maurosergio@diariodonordeste.com.br"objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
objEmail.TextBody = "Computador: " & strNome & " Disco: " & objDisk.DeviceID & "Espaço Disponivel: " & nEspaco & "%"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx.xxx.xxx.xxx" '<-informe seu servidor smtpobjEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub -
Olá,
Segue o script para arquivo (o anterior varria uma pasta inteira)
Path = "C:\informa.txt"
strdata = 2 'QUANTIDADE DE DIAS ANTERIOR PARA VALIDAR O ARQUIVO
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Arquivo = ObjFSO.GetFile(Path)
If Not ObjFSO.FileExists(Path) Then
WriteLog Path & " - não é uma pasta válida(A pasta não existe)."
WScript.Quit
End If
if DateDiff("d",Arquivo.datecreated,now) > strdata Then
wscript.echo "O arquivo " & Arquivo.name & " é mais antigo(s) que " & CStr(strData) &" dias. será enviado email"
Envia_Alerta Arquivo.name
Else
wscript.echo "O arquivo " & Arquivo.name & " não é mais antigo(s) que " & CStr(strData) &" dias. não será enviado email"
End if
Sub Envia_Alerta(strArquivo)
Set objEmail = CreateObject("CDO.Message")
'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "servidor@contoso.msft"
objEmail.To = "jesiel@nwtraders.msft"
objEmail.Subject = "ALERTA DE FALTA DE ARQUIVO"
objEmail.TextBody = "ARQUIVO EM FALTA:" & strArquivo
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub
Poste os resultados.
Até mais,
Jesiel
Obs.: Se útil, classifique a resposta
- Marcado como Resposta mauroserggio sexta-feira, 27 de março de 2009 20:29
-
Olá,
Está correto, tente o script abaixo: (verifique se o IP que você está colocando está aberto)
Dim strNome
'CONSTANTES NAO ALTERAR
Const HARD_DISK = 3
strComputer = "."
'COLOQUE A PORCENTAGEM LIMITE
nLimite = 30
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objItem In colItems
strNome = objItem.Name
Next
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
wscript.echo (objDisk.FreeSpace * 100) /objDisk.Size
if (objDisk.FreeSpace * 100) /objDisk.Size < nLimite Then
wscript.echo "ultrapassou o limite, será enviado email"
Envia_Alerta (objDisk.FreeSpace * 100) /objDisk.Size
Else
wscript.echo "Nao ultrapassou o limite, nao envia email"
End if
Next
Sub Envia_Alerta(nEspaco)
Set objEmail = CreateObject("CDO.Message")
'COLOQUE AQUI OS ENDEREÇOS DE EMAIL
objEmail.From = "suporte@verdesmares.com.br"
objEmail.To = "maurosergio@diariodonordeste.com.br"
objEmail.Subject = "ALERTA DE UTILIZAÇAO DE DISCO COMPUTADOR " & strNome
objEmail.TextBody = "ESPAÇO EM DISCO: " & nEspaco
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'COLOQUE AQUI O IP DO SERVIDOR DE EMAIL
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "10.0.0.1" '<-informe seu servidor smtp
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
end sub
Poste os resultados.
Até mais,
Jesiel
Obs.: Se útil, classifique a resposta
- Marcado como Resposta mauroserggio sexta-feira, 27 de março de 2009 20:28
-
-