snmp获取CPU使用率的Python脚本
时间: 2024-03-28 10:06:32 浏览: 110
当然,我可以帮你提供一个使用Python编写的脚本来获取CPU使用率的信息。你可以使用`pysnmp`库来实现SNMP协议的操作。以下是一个示例脚本:
```python
from pysnmp.hlapi import *
def get_cpu_usage():
# SNMPv2-MIB::sysDescr.0
oid_sys_descr = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)
# HOST-RESOURCES-MIB::hrProcessorLoad.1
oid_cpu_load = ObjectIdentity('HOST-RESOURCES-MIB', 'hrProcessorLoad', 1)
# 创建SNMP会话
snmp_engine = SnmpEngine()
target = UdpTransportTarget(('your_device_ip', 161)) # 替换为你的设备IP和SNMP端口
# 获取系统描述信息
sys_descr = next(getCmd(snmp_engine, CommunityData('public'), target, ContextData(), ObjectType(oid_sys_descr)))
# 获取CPU使用率
cpu_load = next(getCmd(snmp_engine, CommunityData('public'), target, ContextData(), ObjectType(oid_cpu_load)))
# 关闭SNMP会话
snmp_engine.transportDispatcher.closeDispatcher()
return sys_descr[0][1].prettyPrint(), cpu_load[0][1]
if __name__ == '__main__':
sys_descr, cpu_load = get_cpu_usage()
print(f'System Description: {sys_descr}')
print(f'CPU Load: {cpu_load}%')
```
请注意,在示例代码中,你需要将`your_device_ip`替换为你要监控的设备的IP地址,并确保设备已经启用了SNMP服务。此外,脚本中使用的SNMP团体字符串为`public`,你可能需要根据你的设备配置进行相应的更改。
希望这可以帮助到你!如果有任何进一步的问题,请随时提问。
阅读全文