在紅孩子的時候,記得有一個星期那麼幾天,來自深圳一個IP段的幾臺匿名爬蟲,總是在後半夜的時候把公司的站點爬到CPU使用率100%,那時候公司用cacti做監控,但是cacti並沒有針對CPU異常報警的功能,無奈之下,在網上找了找資料,寫了個VBS,實現的了郵件報警功能,因爲我們運維的頭老駱的郵箱做了手機綁定,所以,只要有報警郵件的話,第一時間就知道問題所在了
將最下面的那段代碼保存爲VBS,然後寫個BAT
BAT內容如下
cscript 文件名.VBS
在用battoexe這個小程序,把BAT轉換成EXE文件
最後用 instsrv.exe/srvany.exe 將 這個EXE文件註冊成服務,這樣。遠程桌面即使是註銷了,服務還在運行,一樣做到監控效果(instsrv.exe/srvany.exe 的使用方法上網搜索下,很多,這裏就不寫了)
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 = "
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