Тема: VBS: отслеживание логов бэкапов
Добрый день.
Пытаюсь наклепать скриптик по отстеживанию логов бэпов.
Через поиск нашла уже примерно что-то похожее, но все же это не то...пробовала модернизировать - пока не получается (
логика работы такая: после прохождения очередного бэкапа запускается скрипт который:
1. смотрит лог файл и Отправляет логи как текст письма
2. Заранее проверяет в логе на наличие ошибок ( ключевое слово : error ). если они имеются - вывести в начало или заголовок письма.
3. Ну и собсственно если лога нет-тоже отправить письмо админ-ру.
Пункты 1 и 3 реализованы, а вот 2 никак не удается......подскажите плз кто что может ) заранее спасибо )
Option Explicit
' Dim variables
Dim oFSO, oWshNetwork, oCDO, oFolder, oFiles, oFile, oTextFile
dim strFileName, strComputerName, LogFile, ForReading
' Create Objects
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshNetwork = WScript.CreateObject("WScript.Network")
' Set constants
Const BACKUP_LOG_PATH = "C:\Documents and Settings\<backup user>\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data"
Const EMAIL_RECIPIENT = "<email>"
' Set variable defaults
strFileName = ""
strComputerName = oWshNetwork.ComputerName
ForReading = 1
' Start script
On Error Resume Next
Set oFolder = oFSO.GetFolder(BACKUP_LOG_PATH)
Set oFiles = oFolder.Files
For Each oFile in oFiles
If oFSO.GetExtensionName(oFile.Name) = "log" Then
If DateValue(oFile.DateLastModified) = Date() Then
LogFile = oFile.Name
strFileName = BACKUP_LOG_PATH & "\" & LogFile
EmailLog(strFileName)
'Exit For
End If
End If
Next
If strFileName = "" Then
EmailError
End If
Sub EmailLog(logFilePath)
Set oCDO = CreateObject("CDO.Message")
Set oTextFile = oFSO.OpenTextFile(logFilePath, ForReading, false, -2)
Dim Text
Text = "NTBackup log on " & strComputerName & " for " & Date() & " :" & vbCrlf & vbCrlf
oCDO.Subject = "Backup Log – " & strComputerName
oCDO.From = strComputerName & "@<domain>"
oCDO.To = EMAIL_RECIPIENT
Do While Not (oTextFile.atEndOfStream)
Text = Text & oTextFile.ReadLine & vbCrlf
Loop
oCDO.TextBody = Text
oCDO.AddAttachment logFilePath
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="<smtp server>"
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "<send user>"
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "<send password>"
oCDO.Configuration.Fields.Update
oCDO.Send
set oCDO = Nothing
End Sub
Sub EmailError
Set oCDO = CreateObject("CDO.Message")
oCDO.Subject = "Backup Log Missing – " & strComputerName
oCDO.From = strComputerName & "@<domain>"
oCDO.To = EMAIL_RECIPIENT
oCDO.TextBody = "No NTBackup log found on " & strComputerName & " for " & Date() & " !"
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="<smtp server>"
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "<send user>"
oCDO.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "<send password>"
oCDO.Configuration.Fields.Update
oCDO.Send
Set oCDO = Nothing
End Sub
set oFSO = Nothing
Set oWshNetwork = Nothing