|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте |
|
VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте
|
Новый участник Сообщения: 11 |
Добрый день.
Помогите в написании скрипта, который будет: 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 |
|
Отправлено: 15:12, 12-10-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Например, так:
Или в папке вовсе только логи и ничего кроме логов? |
Отправлено: 16:25, 02-12-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 14:59, 03-12-2011 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 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 |
Отправлено: 19:35, 03-12-2011 | #13 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать В моей папке логов четыре файла. Названия им raidGVA-XP002.log raidGVA-XP061.log raidGVA-XP068.log raidGVA-XP112.log.
В файле raidGVA-XP002.log есть запись, которая должна вызвать отправку сообщения на почту, но скрипт пишет: Переменная не определена: 'strLogPath' Что делать? Где править? |
Отправлено: 13:58, 06-12-2011 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:01, 06-12-2011 | #15 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Переменная не определена: 'objFile' В папке лежат файлы txt и log для верности. Или же тут в другом проблемма? |
|
Отправлено: 09:49, 07-12-2011 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Дело в том, что последний вариант скрипта (#13) я писал «на ощупь», не запуская его для проверки.
Добавить «Dim objFile» туда же, ниже «Dim strLogPath»: P.S. Может быть, переделать для работы только с лог-файлами и по маске? Судя по приведённым Вами выше именам файлов, у них есть постоянная и переменная части в именах. |
Отправлено: 12:26, 07-12-2011 | #17 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Я не смог справится ни с первой интеграцией ни со второй. У меня скрипт работает только с указанием на конкретный файл.
Если можно, покажите вариант с перебором всех логов в папке по маске GVA-XP***.log |
Отправлено: 15:18, 07-12-2011 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать mrxMonster, лады. Только — либо вечером, либо ближе к утру.
|
Отправлено: 15:35, 07-12-2011 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать mrxMonster, пробуйте:
Option Explicit Const ForReading = 1 Const cdoSendUsingPort = 2 Const cdoBasic = 1 Const strPartSchema = "http://schemas.microsoft.com/cdo/configuration/" Dim strLogPath Dim objFile Dim objRegExp Dim strLine Dim dtDateTime strLogPath = "E:\Песочница\0098" Set objRegExp = WScript.CreateObject("VBScript.RegExp") With objRegExp .IgnoreCase = True .Pattern = "GVA-XP\d{3}\.log" End With With WScript.CreateObject("Scripting.FileSystemObject") If .FolderExists(strLogPath) Then For Each objFile In .GetFolder(strLogPath).Files If objRegExp.Test(objFile.Name) Then 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 End If Next Else WScript.Echo "Log Folder [" & strLogPath & "] not found" End If End With WScript.Quit 0 |
Отправлено: 09:44, 08-12-2011 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Помогите доработать скрипт отправки по почте с аттачем | diavard | Скриптовые языки администрирования Windows | 4 | 21-02-2011 14:55 | |
[решено] Скрипт для отправки файлов или просто текста на определенный E-mail | wwe | AutoIt | 2 | 02-02-2010 18:15 | |
скрипт отправки почты | stolyar | Вебмастеру | 10 | 04-01-2010 18:23 | |
Как прикрепить файл для отправки по электронной почте в CMS Joomla? | SashaKl | Вебмастеру | 1 | 12-06-2009 15:44 | |
скрипт формы отправки на мыло | Denis Shutka | Вебмастеру | 1 | 10-01-2005 02:57 |
|