Netmiko用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用 , Netmiko 脚本比 Paramiko 脚本短很多
安装
pip install netmiko
实例
执行单条命令
from netmiko import ConnectHandler
cisco = {
'device_type':'cisco_ios',
'host':'ip地址',
'username':'用户名',
'password':'密码'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用户名',password='密码')
#找到目前所在视图
current_view = net_connect.find_prompt()
print(current_view)
#执行命令,返回结果为字符串,赋值给output
output = net_connect.send_command('show ip int brief')
print(output)
# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_list:
# print(line)
执行配置命令:手动关闭接口G1/0/29
from netmiko import ConnectHandler
cisco = {
'device_type':'cisco_ios',
'host':'ip地址',
'username':'用户名',
'password':'密码'
}
net_connect = ConnectHandler(**cisco)
##或者
# net_connect = ConnectHandler(device_type='cisco_ios',host='IP地址',username='用户名',password='密码')
#要配置的命令
config_commands = ['interface GigabitEthernet1/0/29','shutdown']
#提交要配置的命令,input为提交的真实内容
input = net_connect.send_config_set(config_commands)
#验证shutdown是否执行成功
output = net_connect.send_command('show run inter gi1/0/29')
print(output)
# #此为在windows里如果\n不能显示回车,则进行如下语句格式化
# o_list = output.split("\n")
# for line in o_list:
# print(line)
执行多条命令
from netmiko import ConnectHandler as ch
# 通过字典方式定义设备登录信息
host = {
'device_type': 'hp_comware',
'host': '192.168.56.20',
'username': 'netdevops',
'password': 'netdevops',
'port': 22,
'secret': '', # enable密码,没有可以不写这行
}
# 连接设备
conn = ch(**host)
# 定义一个命令列表,比如为G0/1配置一个IP地址
commands = ['int g0/1', 'ip add 1.1.1.1 30', 'desc netmiko_config']
# 这个时候可以使用 send_config_set 方法执行多条命令
output = conn.send_config_set(commands)
print(output)
常用方法
- net_connect.send_command() # 向下发送命令,返回输出(基于模式)
- net_connect.send_command_timing() # 沿通道发送命令,返回输出(基于时序)
- net_connect.send_config_set() # 将配置命令发送到远程设备
- net_connect.send_config_from_file() # 发送从文件加载的配置命令
- net_connect.save_config() # 将running#config保存到startup#config
- net_connect.enable() # 输入启用模式
- net_connect.find_prompt() # 返回当前路由器提示符
- net_connect.commit() # 在Juniper和IOS#XR上执行提交操作
- net_connect.disconnect() # 关闭连接
- net_connect.write_channel() # 通道的低级写入
- net_connect.read_channel() # 通道的低级写入
评论 (0)