Уведомление по электронной почте о нехватке места на диске

Уведомление по электронной почте о нехватке места на диске

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

У кого-нибудь был опыт настройки этого?

Спасибо.

решение1

Вместо того, чтобы создавать оповещение только для этого одного пункта, вам следует подумать о настройке Nagios или подобного. Затем вы можете настроить его для мониторинга всего, что вам нравится, и оповещения, когда что-то выходит за рамки ваших предопределенных параметров. Относительно небольшое количество времени, необходимое для его настройки, будет более чем оправдано, освободив вас от необходимости вручную контролировать и проверять вещи.

решение2

Пара вариантов:

а) Установите агент мониторинга (например, nsclient++) и настройте систему мониторинга (например, Nagios), которая будет отслеживать его и предупреждать вас, когда на диске остается мало места;

б) Создайте запланированную задачу, которая запускается каждую минуту, считывает соответствующий счетчик WMI (например, \\LogicalDisk(C:)\\Free Megabytes) и отправляет письмо с помощью объекта CDO.Message WScript (пример здесь:http://blogs.technet.com/heyscriptingguy/archive/2004/11/29/how-can-i-attach-a-file-to-an-email-sent-using-cdo.aspx)

решение3

+1 за nagios (или производные вроде opsview ) и nsclient++. Если вы знаете скрипты, вы можете легко написать свои собственные плагины для всего, что вам может понадобиться.

Если вы еще не ведете мониторинг, начните делать это сейчас!

решение4

Глянь сюда:Microsoft KB324796

Я использую это в нашей среде, и это отлично работает. Вам нужен SMTP-сервер для отправки сообщения, но это не обязательно должен быть тот же ящик.

Я проверяю наличие малой памяти (каждые 5 минут проверяет, не меньше ли свободной памяти 100 МБ), монитор процессора (каждые 30 секунд проверяет, не загружен ли процессор более чем на 95%) и мало места на диске (каждые 30 минут проверяет, не меньше ли места на диске 20%). Их очень легко добавить, и у меня не возникло никаких проблем.

Вот файл VBScript, который у меня есть для оповещения о высокой загрузке ЦП. Вы можете изменить скрипт, включив учетные данные, если необходимо:

' Get command line parameters
Dim ArgObj
Set ArgObj = WScript.Arguments 
Dim strFrom, strTo, strSubject, strBody, strIPAddress
strFrom = "SERVERNA<E <[email protected]>"
strTo = "RECIPIENT <[email protected]>"
strSubject = "Automated CPU Alert from SERVERNAME"
strIPAddress = "IPADDRESS"

' get the body from the command line
If ArgObj.Count > 0 Then
strBody = ArgObj( 0 )

' if the subject is specified as an argument then add it
If ArgObj.Count > 1 Then
strSubject = ArgObj( 1 )
End If
Else
strBody = "Default alert message body" 
End if

Call SendEmail( strFrom, strTo, strSubject, strBody )

' release memory
Set ArgObj = Nothing

' Sub-routing to send an e-mail using the CDO component
Sub SendEmail(sFromEmail, sToEmail, sSubject, sText )

Dim objMail
Set objMail = CreateObject( "CDO.Message" )
objMail.From = sFromEmail
objMail.To = sToEmail
objMail.Subject = sSubject

' Send using an SMTP server
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ) = 2

' Name or IP of remote SMTP server
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ) = strIPAddress

' Server port
objMail.Configuration.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ) = 25 

objMail.Configuration.Fields.Update
objMail.TextBody = sText
objMail.Send

Set objMail = nothing

End Sub

Связанный контент