华为设备CPU利用率监控脚本:使用Python、ncclient和paramiko
华为设备CPU利用率监控脚本:使用Python、ncclient和paramiko
本脚本使用Python语言,并结合ncclient和paramiko库,实现对华为设备的SSH连接,获取设备的CPU利用率和执行命令'display cpu'。
脚本代码
# 导入所需模块
import paramiko
from ncclient import manager
import time
import datetime
# 定义设备信息
device = {
'ip': '10.1.1.1',
'port': 22,
'username': 'admin',
'password': 'password',
}
# 定义命令
command = 'display cpu'
# 定义SSH连接函数
def ssh_connect(device):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=device['ip'], port=device['port'], username=device['username'], password=device['password'])
return ssh
# 定义获取命令输出函数
def get_output(command):
ssh = ssh_connect(device)
stdin, stdout, stderr = ssh.exec_command(command)
output = stdout.read().decode()
ssh.close()
return output
# 定义获取设备CPU利用率函数
def get_cpu():
with manager.connect(host=device['ip'], port=device['port'], username=device['username'], password=device['password'], timeout=10, device_params={'name': 'huawei'}) as m:
cpu_xml = '''
<rpc>
<exec command="display cpu"/>
</rpc>
'''
result = m.dispatch(xml=cpu_xml).xml
cpu = result.split('>')[2].split()[0]
return cpu
# 获取当前时间
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 获取CPU利用率和命令输出
cpu = get_cpu()
output = get_output(command)
# 输出结果
print('当前时间:', now)
print('CPU利用率:', cpu)
print('命令输出:\n', output)
代码说明
- 导入必要的模块:paramiko, ncclient, time, datetime
- 定义设备信息,包括IP地址、端口号、用户名和密码
- 定义要执行的命令:'display cpu'
- 定义SSH连接函数:
ssh_connect(device),使用paramiko库实现SSH连接 - 定义获取命令输出函数:
get_output(command),使用paramiko库执行命令并获取输出结果 - 定义获取CPU利用率函数:
get_cpu(),使用ncclient库发送Netconf请求获取CPU利用率信息 - 获取当前时间
- 调用函数获取CPU利用率和命令输出
- 输出结果,包括当前时间、CPU利用率和命令输出
使用方法
- 修改代码中的设备信息,包括IP地址、端口号、用户名和密码
- 运行脚本
- 脚本将输出当前时间、CPU利用率和'display cpu'命令的输出结果
注意事项
- 确保已安装必要的库:paramiko, ncclient
- 确保设备已经配置了SSH服务
- 确保用户具有执行'display cpu'命令的权限
- 可以根据需要修改脚本中的命令和输出格式
总结
本脚本提供了一个使用Python、ncclient和paramiko库连接华为设备,获取CPU利用率和执行命令的示例。您可以根据需要对脚本进行修改和扩展,以满足您的实际需求。
原文地址: https://www.cveoy.top/t/topic/n36Y 著作权归作者所有。请勿转载和采集!