VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
-
mrxMonster
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Добрый день.
Помогите в написании скрипта, который будет:
1. Просматривать логи из определённой папки
2. Смотреть на последнюю запись и искать в ней слово "warning"
3. Если слово найдено, то сравнивать дату строчки с текущей датой
4. Если дата строчки не позднее 1 дня то отправлять на мыло всю строчку с данным словом.
Образец лога прилагается:
06.10.2011 9:03:51 GVA-XP002 Warning RAID:1
06.10.2011 11:16:45 GVA-XP002 Warning RAID:1
06.10.2011 11:31:33 GVA-XP002 Warning RAID:1
06.10.2011 11:35:52 GVA-XP002 Warning RAID:1
06.10.2011 12:45:14 GVA-XP002 Warning RAID:1
07.10.2011 12:45:49 GVA-XP002 OK
11.10.2011 13:09:22 GVA-XP002 Warning RAID:2
Помогите в написании скрипта, который будет:
1. Просматривать логи из определённой папки
2. Смотреть на последнюю запись и искать в ней слово "warning"
3. Если слово найдено, то сравнивать дату строчки с текущей датой
4. Если дата строчки не позднее 1 дня то отправлять на мыло всю строчку с данным словом.
Образец лога прилагается:
06.10.2011 9:03:51 GVA-XP002 Warning RAID:1
06.10.2011 11:16:45 GVA-XP002 Warning RAID:1
06.10.2011 11:31:33 GVA-XP002 Warning RAID:1
06.10.2011 11:35:52 GVA-XP002 Warning RAID:1
06.10.2011 12:45:14 GVA-XP002 Warning RAID:1
07.10.2011 12:45:49 GVA-XP002 OK
11.10.2011 13:09:22 GVA-XP002 Warning RAID:2
-
mrxMonster
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Подскажите код для поиска слова из текстового файла?
-
Iska
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Например, так:
Код:
Или в папке вовсе только логи и ничего кроме логов?
Код:
Код: Выделить всё
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:
Разъясните мне ситуацию, почему ни один человек никоим образом не прокаментировал мои вопросы?
Задача не интересная.
Попробуйте:
Код:
Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер.
Разъясните мне ситуацию, почему ни один человек никоим образом не прокаментировал мои вопросы?
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Задача не интересная.
Попробуйте:
Код:
Код: Выделить всё
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
strLog = "E:\Песочница\0092\123.txt"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strLog) Then
With .OpenTextFile(strLog, 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
Else
WScript.Echo "File [" & strLog & "] not found"
End If
End With
WScript.Quit 0Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер.
-
mrxMonster
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Цитата Iska:
Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер.
Спасибо огромнейшее за ответ!
Это простой текстовый лог, который пишется другим скриптом из системного журнала. Для каждой машины свой лог, но в одну папку, потому и названия будут схожи у файлов. Информация в него пишется каждый день, вернее при каждом логине системы. Средний размер где то 10 кило для файла(увеличивается с каждой записью).
Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата.
Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер.
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Спасибо огромнейшее за ответ!
Это простой текстовый лог, который пишется другим скриптом из системного журнала. Для каждой машины свой лог, но в одну папку, потому и названия будут схожи у файлов. Информация в него пишется каждый день, вернее при каждом логине системы. Средний размер где то 10 кило для файла(увеличивается с каждой записью).
Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата.
-
mrxMonster
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Давайте сначала разберёмся с работоспособностью:
Цитата mrxMonster:
Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата.
Я создал файл «E:\Песочница\0092\123.txt», записал в него
Код:
обозначающую сегодняшнюю дату, заменил болванки в:
Код:
на реальные данные и запустил скрипт. Письмо было отправлено на заданный адрес. А что у Вас?
Цитата mrxMonster:
Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата.
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Я создал файл «E:\Песочница\0092\123.txt», записал в него
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
текст, добавил строчку:Код:
Код: Выделить всё
28.11.2011 13:09:22 GVA-XP002 Warning RAID:2обозначающую сегодняшнюю дату, заменил болванки в:
Код:
Код: Выделить всё
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на реальные данные и запустил скрипт. Письмо было отправлено на заданный адрес. А что у Вас?
-
mrxMonster
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Прошу прощения за свою невнимательность, я просто забыл в лог добавить запись с актуальной датой ошибки.
После внесения изменения скрипт отреагировал по другому и выдал ошибку:
Ошибка: Сервер отклонил адрес отправителя. Отклик сервера: 501
sender address must match authenticated user
код: 8004020E
Источник: (null)
Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы.
После скрипт заработал как нужно.
У меня ещё один вопрос:
Как не писать логин и пароль от почты в таком открытом виде? Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина?
После внесения изменения скрипт отреагировал по другому и выдал ошибку:
Ошибка: Сервер отклонил адрес отправителя. Отклик сервера: 501
sender address must match authenticated user
код: 8004020E
Источник: (null)
Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы.
После скрипт заработал как нужно.
У меня ещё один вопрос:
Как не писать логин и пароль от почты в таком открытом виде? Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина?
-
Iska
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Цитата mrxMonster:
Как не писать логин и пароль от почты в таком открытом виде?
Мне сложно сказать. Обеспечьте хранение скрипта в месте, доступном только администраторам домена. Запускайте его от имени одного из администраторов или системы.
Цитата mrxMonster:
Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина?
Поясните, пожалуйста.
Как не писать логин и пароль от почты в таком открытом виде?
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Мне сложно сказать. Обеспечьте хранение скрипта в месте, доступном только администраторам домена. Запускайте его от имени одного из администраторов или системы.
Цитата mrxMonster:
Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина?
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Поясните, пожалуйста.
-
mrxMonster
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Update: Решил добавить…
Цитата mrxMonster:
Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы.
Раньше потребности в этом не возникало. Но, благодаря вирусописателям и спамерам, рассылавшим всякие гадости от имени «admins@yourdomain.com» и т.п., практически все сервера давно уже требуют этого, как минимальной меры предосторожности.
Цитата mrxMonster:
Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы.
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Раньше потребности в этом не возникало. Но, благодаря вирусописателям и спамерам, рассылавшим всякие гадости от имени «admins@yourdomain.com» и т.п., практически все сервера давно уже требуют этого, как минимальной меры предосторожности.
-
Iska
Re: VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Кстати, говорилось что бдут несколько логов (у каждой машины свой лог) в одной папке
Цитата mrxMonster:
1. Просматривать логи из определённой папки
Как заставить скрипт просматривать их по очереди?
Цитата mrxMonster:
1. Просматривать логи из определённой папки
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
Как заставить скрипт просматривать их по очереди?