VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Ответить
 • Просмотры: 1
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение Iska »

Например, так:



Код:

Код: Выделить всё

strLog = "E:\Песочница\0092\123.txt"
With WScript.CreateObject("Scripting.FileSystemObject")
	For Each strLog In Array("c:\My Log 01.txt", "c:\My Log 02.txt", "c:\My Log 0x.txt")
		If .FileExists(strLog) Then
			…
		End If
	Next
End With

Или в папке вовсе только логи и ничего кроме логов?
Аватара пользователя
mrxMonster

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение mrxMonster »

Цитата Iska:



Или в папке вовсе только логи и ничего кроме логов?
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте




Да, папка предназначена только для логов таких как образец, за исключением названия!
Аватара пользователя
mrxMonster

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение mrxMonster »

mrxMonster, ясно. Тогда, возможно, будет удобнее перебором всего, что есть в указанной папке:



Код:

Код: Выделить всё

Option Explicit
Const ForReading       = 1
Const cdoSendUsingPort = 2
Const cdoBasic         = 1
Const strPartSchema    = "http://schemas.microsoft.com/cdo/configuration/"
Dim strLog
Dim strLine
Dim dtDateTime
strLogPath = "E:\Песочница\0092"
With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strLogPath) Then
		For Each objFile In .GetFolder(strLogPath).Files
			With objFile.OpenAsTextStream(ForReading)
				Do Until .AtEndOfStream
					strLine = .ReadLine()
				Loop
				.Close
			End With
			dtDateTime = CDate(Split(strLine)(0) & " " & Split(strLine)(1))
			If DateDiff("d", dtDateTime, Now()) <= 1 Then
				If UCase(Split(strLine)(3)) = UCase("Warning") Then
					With WScript.CreateObject("CDO.Message")
						With .Configuration.Fields
							.Item(strPartSchema & "sendusing")        = cdoSendUsingPort
							.Item(strPartSchema & "smtpauthenticate") = cdoBasic
							.Item(strPartSchema & "smtpserver")       = "smtp.mail.ru"
							.Item(strPartSchema & "smtpserverport")   = 25
							.Item(strPartSchema & "sendusername")     = "login"
							.Item(strPartSchema & "sendpassword")     = "password"
							.Update
						End With
						.To            = "to@mail.com"
						.From          = "from@mail.com"
						.Subject       = "Subject"
						.TextBody      = strLine
						.Send
					End With
				End If
			End If
		Next
	Else
		WScript.Echo "Log Folder [" & strLogPath & "] not found"
	End If
End With
WScript.Quit 0

Если у всех лог-файлов одинаковое расширение — можно сделать условие, чтобы при переборе отбирались именно файлы с таким расширением (так сказать, некоторая защита от случайно попавших в папку файлов).
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение Iska »

mrxMonster, ясно. Тогда, возможно, будет удобнее перебором всего, что есть в указанной папке:



Код:

Код: Выделить всё

Option Explicit
Const ForReading       = 1
Const cdoSendUsingPort = 2
Const cdoBasic         = 1
Const strPartSchema    = "http://schemas.microsoft.com/cdo/configuration/"
Dim strLog
Dim strLine
Dim dtDateTime
strLogPath = "E:\Песочница\0092"
With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strLogPath) Then
		For Each objFile In .GetFolder(strLogPath).Files
			With objFile.OpenAsTextStream(ForReading)
				Do Until .AtEndOfStream
					strLine = .ReadLine()
				Loop
				.Close
			End With
			dtDateTime = CDate(Split(strLine)(0) & " " & Split(strLine)(1))
			If DateDiff("d", dtDateTime, Now()) <= 1 Then
				If UCase(Split(strLine)(3)) = UCase("Warning") Then
					With WScript.CreateObject("CDO.Message")
						With .Configuration.Fields
							.Item(strPartSchema & "sendusing")        = cdoSendUsingPort
							.Item(strPartSchema & "smtpauthenticate") = cdoBasic
							.Item(strPartSchema & "smtpserver")       = "smtp.mail.ru"
							.Item(strPartSchema & "smtpserverport")   = 25
							.Item(strPartSchema & "sendusername")     = "login"
							.Item(strPartSchema & "sendpassword")     = "password"
							.Update
						End With
						.To            = "to@mail.com"
						.From          = "from@mail.com"
						.Subject       = "Subject"
						.TextBody      = strLine
						.Send
					End With
				End If
			End If
		Next
	Else
		WScript.Echo "Log Folder [" & strLogPath & "] not found"
	End If
End With
WScript.Quit 0

Если у всех лог-файлов одинаковое расширение — можно сделать условие, чтобы при переборе отбирались именно файлы с таким расширением (так сказать, некоторая защита от случайно попавших в папку файлов).
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение Iska »

Цитата Iska:



Если речь про #13, то, очевидно, здесь:

Код:

Dim strLog

Dim strLogPath
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте




Я тоже так сразу подумал, но после этого:

Переменная не определена: 'objFile'



В папке лежат файлы txt и log для верности. Или же тут в другом проблемма?
Аватара пользователя
mrxMonster

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение mrxMonster »

Дело в том, что последний вариант скрипта (
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
) я писал «на ощупь», не запуская его для проверки.



Добавить «Dim objFile» туда же, ниже «Dim strLogPath»:



Код:

Код: Выделить всё

Dim strLogPath
Dim objFile

P.S. Может быть, переделать для работы только с лог-файлами и по маске? Судя по приведённым Вами выше именам файлов, у них есть постоянная и переменная части в именах.
Аватара пользователя
Iska

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение Iska »

Я не смог справится ни с первой интеграцией ни со второй. У меня скрипт работает только с указанием на конкретный файл.

Если можно, покажите вариант с перебором всех логов в папке по маске GVA-XP***.log
Аватара пользователя
mrxMonster

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение mrxMonster »

Я не смог справится ни с первой интеграцией ни со второй. У меня скрипт работает только с указанием на конкретный файл.

Если можно, покажите вариант с перебором всех логов в папке по маске GVA-XP***.log
Аватара пользователя
mrxMonster

Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Сообщение mrxMonster »

mrxMonster, лады. Только — либо вечером, либо ближе к утру.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»