单PC上部署多SNMP管理器并行查询多设备的可行性咨询
单PC上部署多SNMP管理器并行查询多设备的可行性咨询
你的这个思路完全可行,而且刚好能解决单SNMP管理器因个别设备超时拖慢整体查询效率的问题——用net-snmp的snmpget CLI工具启动多实例并行查询,完全是符合工具设计逻辑的实用方案。
具体实现方式
直接后台启动多进程
在Linux/macOS环境下,你可以给每个snmpget命令加上&符号,让进程在后台运行,这样多个查询就能同时执行,互不等待:# 后台查询设备1 snmpget -v2c -c public 192.168.1.10 sysDescr.0 & # 后台查询设备2 snmpget -v2c -c public 192.168.1.11 sysDescr.0 &Windows环境下则可以用
start命令实现类似效果:start snmpget -v2c -c public 192.168.1.10 sysDescr.0 start snmpget -v2c -c public 192.168.1.11 sysDescr.0脚本批量管理(适合多设备场景)
如果设备数量较多,手动敲命令太麻烦,你可以写个脚本批量启动后台进程,还能把每个设备的查询结果单独保存,避免输出混乱。比如Linux下的Shell脚本示例:#!/bin/bash # 定义要查询的设备列表 device_list=("192.168.1.10" "192.168.1.11" "192.168.1.12" "192.168.1.13") # SNMP配置参数 snmp_community="public" target_oid="sysDescr.0" timeout=5 # 遍历设备列表启动查询进程 for device in "${device_list[@]}" do echo "开始并行查询设备: $device" snmpget -v2c -c $snmp_community -t $timeout $device $target_oid > "${device}_result.txt" & done # 等待所有后台查询进程完成 wait echo "所有设备查询任务已完成,结果已保存到对应设备的结果文件中"
注意事项
- 系统资源限制:单个
snmpget进程资源占用极低,但如果设备数量达到上百台级别,要留意系统的最大进程数限制和网络带宽,避免因并发过高导致系统或网络拥堵。 - SNMP参数匹配:确保每个设备的SNMP版本、社区字符串(或v3的认证参数)和你
snmpget命令里的参数完全匹配,否则会直接返回认证失败,不会触发超时等待。 - 超时时间优化:可以通过
-t参数自定义超时时间(默认是5秒),根据你的网络环境调整到合理值,既不会因超时过短误判正常设备,也不会因超时过长浪费时间。
备注:内容来源于stack exchange,提问作者FM-Radio
相关产品推荐
相关产品推荐

