要开启 SNMP (简单网络管理协议)并编写一个使用 BAT 脚本监控电脑性能的方案,可以按照以下步骤进行:
1. 启用 SNMP 服务
在 Windows 上启用 SNMP 服务:
启用 SNMP 服务:
打开“控制面板” > “程序” > “启用或关闭 Windows 功能”。
在“功能”列表中,找到并勾选“简单网络管理协议 (SNMP)”。
点击“确定”以安装和启用 SNMP 服务。
配置 SNMP 服务:
打开“服务管理器”(按 Win + R ,输入 services.msc )。
找到“SNMP 服务”,右键选择“属性”。
在“安全”选项卡下,添加一个社区字符串,并设置相应的权限。
在“代理”选项卡下,可以配置联系信息。
启动 SNMP 服务,并设置启动类型为“自动”。
2. 编写 BAT 脚本进行 SNMP 监控
以下是一个示例 BAT 脚本,用于通过 SNMP 获取并记录 CPU 使用率和内存使用情况。脚本将使用 Windows 内置的 snmpget 命令来获取这些性能数据。
bat
复制代码
@
echo off
setlocal
REM 配置 SNMP 相关信息
set SNMP_HOST=localhost
set SNMP_COMMUNITY=public
REM 配置监控的 OID
set OID_CPU=.1.3.6.1.2.1.25.3.3.1.2.1
set OID_MEM_TOTAL=.1.3.6.1.4.1.2021.4.5.0
set OID_MEM_FREE=.1.3.6.1.4.1.2021.4.6.0
REM 输出文件
set OUTPUT_FILE=snmp_monitor.log
:LOOP
REM 获取 CPU 使用率
for /f "tokens=4" %%a in ('snmpget -v 2c -c %SNMP_COMMUNITY% %SNMP_HOST% %OID_CPU%') do set CPU_USAGE=%%a
REM 获取总内存和可用内存
for /f "tokens=4" %%a in ('snmpget -v 2c -c %SNMP_COMMUNITY% %SNMP_HOST% %OID_MEM_TOTAL%') do set MEM_TOTAL=%%a
for /f "tokens=4" %%a in ('snmpget -v 2c -c %SNMP_COMMUNITY% %SNMP_HOST% %OID_MEM_FREE%') do set MEM_FREE=%%a
REM 计算内存使用率
set /a MEM_USED=%MEM_TOTAL%-%MEM_FREE%
set /a MEM_USAGE=(%MEM_USED%*100)/%MEM_TOTAL%
REM 获取当前时间
for /f %%a in ('echo %time%') do set TIME=%%a
REM 记录到日志文件
echo %DATE% %TIME% - CPU: %CPU_USAGE%%, Memory: %MEM_USAGE%%% >> %OUTPUT_FILE%
REM 休眠 60 秒
timeout /t 60 > nul
goto LOOP
3. 执行脚本
将上述脚本保存为 .bat 文件,例如 snmp_monitor.bat 。
双击该文件运行脚本。
监控数据会持续写入 snmp_monitor.log 文件中。
4. 查看日志
日志文件 snmp_monitor.log 会记录每一分钟的 CPU 和内存使用情况。
你可以打开该文件查看历史性能数据。
这个脚本通过 SNMP 获取本地计算机的 CPU 和内存使用率,并将其记录到日志文件中。你可以根据需求修改 OID 来监控其他性能指标。
谢谢 gpt