Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

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

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: mrxMonster
Дата: 17-10-2011
Описание: добавил содержимое лога
Вложения
Тип файла: txt 123.txt
(321 байт, 6 просмотров)
Добрый день.
Помогите в написании скрипта, который будет:
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

 

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите код для поиска слова из текстового файла?

Отправлено: 16:10, 02-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Админы!
Разъясните мне ситуацию, почему ни один человек никоим образом не прокаментировал мои вопросы?
Или мои вопросы слишком сложны для всех???

Отправлено: 14:45, 24-11-2011 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить 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

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
Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:38, 24-11-2011 | #4


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вариант скрипта не оптимален: нужно знать, что это за лог, как часто в него пишется информация, каков его средний размер. »
Спасибо огромнейшее за ответ!

Это простой текстовый лог, который пишется другим скриптом из системного журнала. Для каждой машины свой лог, но в одну папку, потому и названия будут схожи у файлов. Информация в него пишется каждый день, вернее при каждом логине системы. Средний размер где то 10 кило для файла(увеличивается с каждой записью).

Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата.

Отправлено: 16:55, 28-11-2011 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Давайте сначала разберёмся с работоспособностью:
Цитата mrxMonster:
Я попробовал этот код, последнюю строчку он показыват, но что косаемо проверки его даты тут непонятно. Ни ошибок ни результата. »
Я создал файл «E:\Песочница\0092\123.txt», записал в него предложенный текст, добавил строчку:
Код: Выделить весь код
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
на реальные данные и запустил скрипт. Письмо было отправлено на заданный адрес. А что у Вас?
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:19, 28-11-2011 | #6


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Прошу прощения за свою невнимательность, я просто забыл в лог добавить запись с актуальной датой ошибки.
После внесения изменения скрипт отреагировал по другому и выдал ошибку:

Ошибка: Сервер отклонил адрес отправителя. Отклик сервера: 501
sender address must match authenticated user

код: 8004020E
Источник: (null)

Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы.
После скрипт заработал как нужно.

У меня ещё один вопрос:
Как не писать логин и пароль от почты в таком открытом виде? Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина?

Отправлено: 20:25, 30-11-2011 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата mrxMonster:
Как не писать логин и пароль от почты в таком открытом виде? »
Мне сложно сказать. Обеспечьте хранение скрипта в месте, доступном только администраторам домена. Запускайте его от имени одного из администраторов или системы.
Цитата mrxMonster:
Скрипт будет использоваться в доменном пространстве и мне хотелось бы знать можно ли использовать возможности домена для логина? »
Поясните, пожалуйста.

Отправлено: 23:19, 30-11-2011 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Update: Решил добавить…

Цитата mrxMonster:
Я ещё раз всё проверил и понял, что sendusername и параметр .to должны быть одинаковы. »
Раньше потребности в этом не возникало. Но, благодаря вирусописателям и спамерам, рассылавшим всякие гадости от имени «admins@yourdomain.com» и т.п., практически все сервера давно уже требуют этого, как минимальной меры предосторожности.

Отправлено: 23:35, 30-11-2011 | #9


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Кстати, говорилось что бдут несколько логов (у каждой машины свой лог) в одной папке
Цитата mrxMonster:
1. Просматривать логи из определённой папки »
Как заставить скрипт просматривать их по очереди?

Отправлено: 11:20, 02-12-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] скрипт обработки лог файлов и отправки уведомлений по почте

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход