VBS监控CPU的使用率(如占用率一直维持在80%超过30秒则运行某程序)

按照楼主的要求重新修改了下,代码如下:


代码如下:

'----------------------------------------
On Error Resume Next

dim iCpuUsePercentage'记录CPU使用率
dim iSecond'记录使用率等于100所持续的时间
dim objFileStream'txt文本读写流,用于记录日志
dim objTextFileWriter'txt写对象
dim objShell'Shell'对象,用于执行指定程序
dim objFileInfo'文件信息对象,用于获取文件大小信息
dim bIsExecuteBat'是否已经运行过bat文件,下次重置0之前只执行一次批处理

iSecond=0'初始值为0
bIsExecuteBat=False
set objFileStream =CreateObject("Scripting.Filesystemobject")'创建文件系统对象
set objTextFileWriter=objFileStream.opentextfile("log.txt",8,True)'在脚本相同位置以追加方式打开日志文件,如果不存在,则创建日志文件
While True
Set objProc  = GetObject("winmgmts:\\.\root\cimv2:win32_processor='cpu0'")'获取第一个CPU对象
iCpuUsePercentage=objProc.LoadPercentage'获取CPU使用率
objTextFileWriter.WriteLine("【" & Now & "】CPU使用率:" & iCpuUsePercentage & "%,使用率超80%持续时间:" & CStr(iSecond))

'统计累计CPU使用率达到80以上的持续次数,一旦有小于80的,次数归0
if iCpuUsePercentage>=80 then
  iSecond=iSecond+1
else
  iSecond=0
  bIsExecuteBat=False'重置0之后,批处理可以再次执行
end if

if iSecond>=30 And bIsExecuteBat=False then
  objTextFileWriter.WriteLine("CPU使用率达80%持续时间超过30秒!!")
  '调用指定的批处理程序
  set objShell=CreateObject("WScript.shell")
  objShell.run "c:\email.bat"  
  bIsExecuteBat=True'标记已经执行过bat文件
end if

set objFileInfo=objFileStream.getfile("Log.txt")
'日志文件大于2M时,重新建立日志文件
if (objFileInfo.size/1024/1024) >=2 then
  '先关闭文件才能操作
  objTextFileWriter.close
  objFileStream.MoveFile "Log.txt",Replace(Replace(Replace(Now,":",""),"-","")," ","") & "BackLog.txt" 
  '重新打开日志文件 
  set objTextFileWriter=objFileStream.opentextfile("log.txt",8,True)
end if
Wend

'----------------------------------------
日志最好还是保留一下,有日志有助于发现问题。目前是2M一个,超过之后会自动重新创建一个。定时清理一下就行了。
如果不需要日志的话,去掉
objTextFileWriter.WriteLine("【" & Now & "】CPU使用率:" & iCpuUsePercentage & "%,使用率超80%持续时间:" & CStr(iSecond))
这句就行了。
有问题再交流,呵呵!

-------------------
代码已经修改。 如果一直持续在80%以上,批处理只执行一次,一旦计数归零,批处理可以再次执行。

(0)

相关推荐

  • 利用JavaScript检测CPU使用率自己写的

    之前在玉伯的Github Issues里看到了使用JS检测CPU使用率的方法,觉得很赞. 特别自己实现了一下,另外加了一个绘制直方图的功能可以直观看到CPU使用率的情况. 效果请见:传送门 实现思想 其实就是setInterval,利用当前时间减去上一次执行timer记录的时间,得到时间差来反映CPU的延迟,侧面反映了CPU的使用率. 复制代码 代码如下: var data = [],t; var cpuTimer = setInterval(function(){ t && data.p

  • Windows服务器上lsass.exe进程CPU使用率异常问题排查方法

    近期有几台服务器相继出现 lsass.exe 占用CPU过高,也不算太高,而且过了一段时间又会恢复正常,CPU过高直接造成网站打开很慢,周而反复. 在CPU跑高的时候,伴随着一个现像就是网络的浮动,有时候上传居然达到了30M - 90M/s,对外攻击,第一时间就想到有可能是这个原因,那具体怎么查呢? 常见的对外文件,这东西网上搜一下就能找到. 复制代码 代码如下: <?php set_time_limit(86400); ignore_user_abort(True); $packets = 0

  • 一个用了统计CPU 内存 硬盘 使用率的shell脚本

    复制代码 代码如下: #!/bin/bash#This script is use for describle CPU Hard Memery Utilizationtotal=0idle=0system=0user=0nice=0mem=0vmexec=/usr/bin/vmstatwhich sar > /dev/null 2>&1if [ $? -ne 0 ]then  ver=`vmstat -V | awk '{printf $3}'`  nice=0  temp=`vmst

  • VBScript获取CPU使用率的方法

    VBScript通过WMI获取CPU使用率的代码 度娘中,搜索关键词"WMI CPU使用率",得到的全是<python使用WMI监视系统-CPU使用率>,不用看,肯定又是采集的. Python固然强大,但是调用WMI还是用VBS比较"正宗". On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" &

  • 统计 cpu 内存 使用率的shell脚本代码

    复制代码 代码如下: #!/bin/shclearwhile ((1>0))do NET=$(netstat -anp | grep 1000 | grep EST | wc -l) PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{ print " CPU: " $3 "%,  MEM: " $4 "%, RSS: " $6/1024 "M,

  • VBS通过WMI获取CPU使用率的代码

    Python固然强大,但是调用WMI还是用VBS比较"正宗". 复制代码 代码如下: On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Selec

  • VBS监控CPU的使用率(如占用率一直维持在80%超过30秒则运行某程序)

    按照楼主的要求重新修改了下,代码如下: 复制代码 代码如下: '----------------------------------------On Error Resume Next dim iCpuUsePercentage'记录CPU使用率dim iSecond'记录使用率等于100所持续的时间dim objFileStream'txt文本读写流,用于记录日志dim objTextFileWriter'txt写对象dim objShell'Shell'对象,用于执行指定程序dim objF

  • idea对CPU的占用率过大问题的解决方法

    背景:昨晚有一次敲完代码运行完程序后,idea非常卡顿,连输入代码都不能进行,因为有点晚并且累了,所有就关了电脑,今天早上再次打开idea,还是一样卡顿,因为idea的试用期明天就到期了,所有就先破解了idea,破解完之后,还是非常流畅的,但是一运行程序就拉胯了,就先百度看一下解决方案,以下几个解决方案试了,基本问题还是没有解决,就在群里问了几个大佬,方案不是重装系统就是换电脑,同时开始了电脑的配置讨论,重装系统和换电脑的什么是不可能的,所有只有自己慢慢摸索了. 1 修改idea配置文件安装目录

  • Golang pprof监控之cpu占用率统计原理详解

    目录 http 接口暴露的方式 程序代码生成profile cpu 统计原理分析 线程处理信号的时机 内核发送信号的方式 采样数据的公平性 总结 经过前面的几节对pprof的介绍,对pprof统计的原理算是掌握了七八十了,我们对memory,block,mutex,trace,goroutine,threadcreate这些维度的统计原理都进行了分析,但唯独还没有分析pprof 工具是如何统计cpu使用情况的,今天我们来分析下这部分. http 接口暴露的方式 还记得 golang pprof监

  • CPU占用率高的N种原因

    1.防杀毒软件造成故障 由于新版的KV.金山.瑞星都加入了对网页.插件.邮件的随机监控,无疑增大了系统负担.处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备. 2.驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因. 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号.版本. 3.病毒.木马造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下.解决办法:用

  • 解决正则表示式匹配($regex)引起的一次mongo数据库cpu占用率高的问题

    某一天,监控到mongo数据库cpu使用率高了很多,查了一下,发现是下面这种语句引起的: db.example_collection.find({ "idField" : { "$regex" : "123456789012345678" } , "dateField" : { "$regex" : "2019/10/10" }}) 通常,遇到这种情况,我第一反应是缺少相关字段的索引,导

  • 解决开机时svchost.exe的CPU占用率过高导致系统异常缓慢

    网上有很多关于开机时SVCHOST.exe的CPU占用率过高问题的文章,基本上都说出了绝大部分用户的情况并给出解决方案,我引用一篇网上随便搜索的关于这SVCHOST的文章给大家看看,如果大家也有类似的问题可参考一下. 可是,今天X-Force遇到的问题,似乎文中提到的这些都没关系...因为经我的验证和排除,发现问题均与文章中提到的无关.X-Force被逼着再去查找真凶--经一番推理之后,终于找出了元凶就是-- Windows Upadate(Windows自动更新)!只要在我将Windows U

  • C#程序优化-有效减少CPU占用率

    最近开发的项目中,由于会用到比较耗费CPU资源的第三方程序ffmpeg来处理视频.所以在网上找了一下,如何解决这种问题. 于是乎,就得到一个结论,减少CPU占用率,可以通过减少使用的CPU数量,在Window系统下,打开一个exe程序,系统会默认使用所有CPU作为处理. 是不是减少CPU使用数量,就可以减少CPU占用率呢,答案是肯定的. 参考代码:这里使用calc作为例子. Process p = new Process(); p.StartInfo.FileName = @"c:\window

  • linux使用管道命令执行ps获取cpu与内存占用率

    复制代码 代码如下: #include <stdio.h>#include <unistd.h>int main(){    char caStdOutLine[1024]; // ps 命令的标准输出中的一行信息    char* pcTmp = NULL;      // 指向以空格拆分后的字符串 char caSelfPID[10];      // 自身进程的PID字符串    char caPSCmd[24];        // "ps aux | grep

  • 基于Python实现实时监控CPU使用率

    目录 导语 一.模块简介 二.准备中 三.开始敲代码 3.1 代码内容 3.2 附完整代码 四.效果展示 导语 哈喽!大家好,我是木木子!准时上线给大家更新啦!​ Ps:小故事 前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看CPU的使用率方法,或者能够介绍一款比较给力的小插件也好.确实,在生活中有不少人是不喜欢装那些管理软件的. 今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现.也无需下载

  • 详解Node.js 应用高 CPU 占用率分析方法

    目录 本地运行 Node.js 应用 如何采集生产系统上的 Node.js 应用性能数据 本地运行 Node.js 应用 我们在本地运行 Node.js 应用,使用 --inspect 标志启动应用程序,再次执行负载测试,在 Chrome 浏览器中打开 chrome://inspect: 单击应用下方的 inspect 按钮,然后开始 CPU 占用率分析: 等待一段时间后,就能看到 CPU profile 的结果: 如何采集生产系统上的 Node.js 应用性能数据 在大多数情况下,如果性能问题

随机推荐