21-10-12, 05:16 PM
الطريقة الثانية
=====================================
لطريقة الأولي :
أنشأ مجلد على القرص المحلي C باسم HeartBeat - تعني نبض القلب
تنشأ الملف ServiceList.txt
وتكتنب بداخله هذه الأسطر وهى الخدمات التى ستراقب
SQL,MSSQLServer
SQL,SQLSERVERAGENT
YUKON,MSSQLServer
YUKON,SQLSERVERAGENT
YUKON,MSSQLServerOLAPService
ETL,MSSQLServer
ETL,SQLSERVERAGENT
ننشأ الملف CheckHeartbeatEmail.vbs داخل المجلد
ونكتب بداخله هذا الكود
طبعاً أنت ستغير الاميل حسب بريدك SMTP server حسب بريدك
عند تشغيل الملف - سنجد أنه كون ملف باسم Status.txt
اطلعه علي محتواه
وسيقوم بارسال الرسالة لك
=====================================
لطريقة الأولي :
أنشأ مجلد على القرص المحلي C باسم HeartBeat - تعني نبض القلب
تنشأ الملف ServiceList.txt
وتكتنب بداخله هذه الأسطر وهى الخدمات التى ستراقب
SQL,MSSQLServer
SQL,SQLSERVERAGENT
YUKON,MSSQLServer
YUKON,SQLSERVERAGENT
YUKON,MSSQLServerOLAPService
ETL,MSSQLServer
ETL,SQLSERVERAGENT
ننشأ الملف CheckHeartbeatEmail.vbs داخل المجلد
ونكتب بداخله هذا الكود
كود :
'Objective: TO check the Heartbeat of all SQL Server services and send email
'if any state of service is not running
'Author: BADRMEDIA
'Date: Oct10, 2007
on error resume next
Set iFSO = CreateObject("Scripting.FilesyStemObject")
Set oFSO = CreateObject("Scripting.FilesyStemObject")
'Note: change the email ID to your email ID
NotificationEmail="BADRMEDIA@yahoo.com"
SMTPServer = "111.222.444.111"
InputFile="c:\Heartbeat\Servicelist.txt"
Outputfile="c:\Heartbeat\Status.txt"
Set ifile = iFSO.OpenTextFile(inputfile)
Set ofile = ofso.createTextFile(OutputFile, True)
ofile.writeline "Check Heart beat started"
Do until ifile.AtEndOfLine
servicelist= ifile.ReadLine
strcomputer=left(servicelist,instr(servicelist,",")-1)
Service =right(servicelist,len(servicelist)-instr(servicelist,","))
ofile.writeline Now()
ofile.writeline "ServerName: " & strcomputer
ofile.writeline "ServiceName: " & Service
Set objWMIService =nothing
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & " " & err.description
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
else
Set colItems = nothing
query=""
query = "Select * from Win32_Service where name = '" & Service & "'"
'msgbox query
Set colItems = objWMIService.ExecQuery(query,,48)
if err.number<>0 then
ofile.writeline "Error: " & err.number
ofile.writeline "Error: " & err.description
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & " " & err.description
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
else
For Each objItem in colItems
ofile.writeline "Status: " & objItem.Status
ofile.writeline "State: " & objItem.State
If objitem.status <>"OK" or objitem.state <>"Running" then
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "SQL Server HeartBeat"
objMessage.Sender = NotificationEmail
objMessage.To = NotificationEmail
objMessage.TextBody = "Server :" & strcomputer & ":" & Service & " Status: " _
& objitem.status & " Status: " & objitem.state
'msgbox y
'The line below shows how to send a webpage from a remote site
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.Send
end if
next
end if
end if
Loop
ofile.writeline "Check Heart beat Completed"طبعاً أنت ستغير الاميل حسب بريدك SMTP server حسب بريدك
عند تشغيل الملف - سنجد أنه كون ملف باسم Status.txt
اطلعه علي محتواه
وسيقوم بارسال الرسالة لك
