Quantcast
Channel: The Official Scripting Guys Forum! forum
Viewing all articles
Browse latest Browse all 15028

Help with Script created to check log files.

$
0
0

Hi i need help completing a VBScript that monitors a log file and emails myself the any errors.

I copied the script from a page on the spiceworks website and edited it to use it for myself.

If i run the script from my workstation i dont get any errors but it wont work. I thought it might be a network access issue so i ran the script directly from my exchange server and i get an error at Line 89.

Can someone help me find what im doing wrong. Scripting isnt my strongest point.

Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing", _
      cdoSendUsingPort = 2, _
      cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const ForReading = 1

Dim intStartAtLine, strFileCreateddate, i, strResults, strTextToScanFor

 'who are you mailing to?
strMailto = "rvellios@mrc.wa.gov.au"

'default email address the message will be from
strMailFrom = "support@mrc.wa.gov.au"

'set SMTP email server address here
strSMTPServer = "mrc1tpv002.mrc1.local"

'full path to the file you wish to monitor
FileToRead = "\\Mrctpv005\WasteMan2G\Config\DCS\DCS_IN\alert.txt"

Set WshShell = WScript.CreateObject("WScript.Shell")

On Error Resume Next
strLastFileCheckedCreateDate = WshShell.RegRead("HKLM\Software\RDScripts\CheckTXTFile\CreateDate")
strLastFileLastLineChecked = WshShell.RegRead("HKLM\Software\RDScripts\CheckTXTFile\LastLineChecked")

On Error GoTo 0

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set varFile = objFSO.GetFile(FileToRead)

'add more text to scan for by adding ,"item" to the array below
' for example, to search for two strings:
' array("text1","text2")
arrTextToScanFor = Array("SVR2006","SVR2008")

strFileCreateDate = varfile.datecreated

If CStr(strFileCreateDate) = CStr(strLastFileCheckedCreateDate) Then
  'if the date when the current file was created DOES equal
  ' the date of the file that was checked last time - it's
  ' the same file.
  '
  'so, we would want to CONTINUE the search from where we
  ' last left off.
  'MsgBox "TEST!"
  intStartAtLine = strLastFileLastLineChecked


ElseIf strFileCreateDate <> strLastFileCheckedCreateDate Then
  'if the date when the current file was created does not equal
  ' the date of the file that was checked last time - it's
  ' a new file that has been created.
  '
  'so, we would want to begin the search from the beginning of
  ' the file.

  intStartAtLine = 0

End If

i = 0
Dim strNextLine
'MsgBox intStartAtLine



Set objTextFile = objFSO.OpenTextFile(FileToRead, ForReading)
  Do While objTextFile.AtEndOfStream <> True
        If i < CInt(intStartAtLine) Then
          objTextFile.skipline
        Else
          'MsgBox i
        strNextLine = objTextFile.Readline
        For each strItem in arrTextToScanFor

      If InStr(LCase(strNextLine),LCase(strItem)) Then
        strResults = strNextLine & vbcrlf & strResults
        'MsgBox strResults
            End If
            Next
          End If
          i = i + 1

  Loop
'MsgBox strResults
objTextFile.close

set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKLM\Software\RDScripts\CheckTXTFile\FileChecked", FileToRead, "REG_SZ"
WshShell.RegWrite "HKLM\Software\RDScripts\CheckTXTFile\CreateDate", strFileCreateDate, "REG_SZ"
WshShell.RegWrite "HKLM\Software\RDScripts\CheckTXTFile\LastLineChecked", i, "REG_SZ"
WshShell.RegWrite "HKLM\Software\RDScripts\CheckTXTFile\LastScanned", Now, "REG_SZ"
set WshShell = nothing

If strResults <> "" Then Call sendmail(strMailFrom,strMailTo,"VPN Logfile scan alert",strResults)

'------------------------------------------------------------------------
'Function EmailFile - email the warning file
'------------------------------------------------------------------------
Function SendMail(strFrom,strTo,strSubject,strMessage)
Dim iMsg, iConf, Flds
On Error GoTo 0

'//  Create the CDO connections.
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields


'//  SMTP server configuration.
With Flds
    .Item(cdoSendUsingMethod) = cdoSendUsingPort

    '//  set smtp server here
    .Item(cdoSMTPServer) = mrc1tpv002.mrc1.local
    .Update
End With

'//  Set the message properties.
With iMsg
    Set .Configuration = iConf
        .To       = "rvellios@mrc.wa.gov.au"
        .From     = "support@mrc.wa.gov.au"
        .Subject  = TEST
        .TextBody = TEST
End With

'iMsg.HTMLBody = strMessage

'//  Send the message.

iMsg.Send ' send the message.

If CStr(err.number) <> 0 Then

Else

End If
End Function



Viewing all articles
Browse latest Browse all 15028

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>