利用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

你可能感兴趣的:(职场,休闲,邮件报警,监控CPU,vbs脚本)