利用VBS腳本監控CPU,實現郵件報警

  在紅孩子的時候,記得有一個星期那麼幾天,來自深圳一個IP段的幾臺匿名爬蟲,總是在後半夜的時候把公司的站點爬到CPU使用率100%,那時候公司用cacti做監控,但是cacti並沒有針對CPU異常報警的功能,無奈之下,在網上找了找資料,寫了個VBS,實現的了郵件報警功能,因爲我們運維的頭老駱的郵箱做了手機綁定,所以,只要有報警郵件的話,第一時間就知道問題所在了
將最下面的那段代碼保存爲VBS,然後寫個BAT

BAT內容如下
cscript  文件名.VBS

在用battoexe這個小程序,把BAT轉換成EXE文件

最後用 instsrv.exe/srvany.exe 將 這個EXE文件註冊成服務,這樣。遠程桌面即使是註銷了,服務還在運行,一樣做到監控效果(instsrv.exe/srvany.exe 的使用方法上網搜索下,很多,這裏就不寫了)


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
do while true
k=0
For i = 0 to 14
If (k) = 0 And (i) = 6 Then
Wscript.Echo   "當前循環次數:" & (i)
Wscript.Echo "跳出循環體"
Exit for
End if
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor ",,48)
load = 0
n = 0
t=0
For Each objItem in colItems
load = objItem.LoadPercentage
Wscript.Echo date() & " " & time() & vbTab & "CPU" & (n) & "的使用率爲:" & (load) & "%"
t=t+(load)
p=t/8
n = n + 1
Next
Wscript.Echo "累加:" & (t)
Wscript.Echo   "平均:" & (p)
If (p) > 90 Then k=k+1
if (k) > 9 then
Wscript.Echo "cpu報警:" & (p) & "%"
NameSpace = "
http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = "郵箱地址"
Email.To = "郵箱地址"
Email.Subject = "主題"
Email.Textbody = 內容 (可以用變量的 哦)
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "smtp.服務器地址.com"
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 1
.Item(NameSpace&"sendusername") = "郵箱地址"
.Item(NameSpace&"sendpassword") = "密碼"
.Update
End With
Email.Send
b=b+1
if b=3 then Wscript.Sleep 1080000
end if
Wscript.Sleep 15000
if (k) = 10 then exit For
If   (k) < 5 And i = 11 Then
Wscript.Echo   "當前循環次數:" & (i)
Wscript.Echo "當前超過10%次數:" & (k)
Wscript.Echo "跳出循環體"
Exit For
End If
Next
m=m+1
loop
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章