Python netmiko模块的使用
作者:森林326 发布时间:2021-07-04 06:42:51
一、简介
此模块用于简化paramiko与网络设备之间的ssh连接,可在windows与Unix平台使用
二、目前支持的设备
(2019.03.07)
Regularly tested
Arista vEOS
Cisco ASA
Cisco IOS
Cisco IOS-XE
Cisco IOS-XR
Cisco NX-OS
Cisco SG300
HP Comware7
HP ProCurve
Juniper Junos
Linux
Limited testing
Alcatel AOS6/AOS8
Apresia Systems AEOS
Calix B6
Cisco AireOS (Wireless LAN Controllers)
Dell OS9 (Force10)
Dell OS10
Dell PowerConnect
Extreme ERS (Avaya)
Extreme VSP (Avaya)
Extreme VDX (Brocade)
Extreme MLX/NetIron (Brocade/Foundry)
Huawei
IP Infusion OcNOS
Mellanox
NetApp cDOT
OneAccess
Palo Alto PAN-OS
Pluribus
Ruckus ICX/FastIron
Ubiquiti EdgeSwitch
Vyatta VyOS
Experimental
A10
Accedian
Aruba
Ciena SAOS
Citrix Netscaler
Cisco Telepresence
Check Point GAiA
Coriant
Dell OS6
Dell EMC Isilon
Eltex
Enterasys
Extreme EXOS
Extreme Wing
Extreme SLX (Brocade)
F5 TMSH
F5 Linux
Fortinet
MRV Communications OptiSwitch
Nokia/Alcatel SR-OS
QuantaMesh
Rad ETX
三、实验环境
1.操作系统:win10
2.python版本: python3.6.6
3.netmiko模块版本:2.3.0
四、安装netmiko模块
#前提准备模块(安装netmiko可自动下载依赖项):
Paramiko >= 2.4.1
scp >= 0.10.0
pyyaml
pyserial
textfsm
#安装netmiko
pip install netmiko
ps:没有全部安装前提模块,在使用netmiko没有报错,说明运行代码里没有调用到而已,而不是不需要
五、简单实例
5.1 执行查看命令:show ip int brief
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)
5.2 执行配置命令:手动关闭接口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)
六、常用方法
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() # 通道的低级写入
七、参考文献
1.https://pynet.twb-tech.com/blog/automation/netmiko.html
2.https://github.com/ktbyers/netmiko
来源:https://www.cnblogs.com/lisenlin/p/10489494.html


猜你喜欢
- 目录一.简介二.特色三.flask规模化四. flask Blueprint总结一.简介Flask是一个使用Python编写的轻量级Web应
- ps:不曾想还有那么好用的方法。汗一个先。Div即父容器不根据内容自适应高度,我们看下面的代码:<div id="main&
- 本文实例讲述了Python多线程通信queue队列用法。分享给大家供大家参考,具体如下:queue:什么是队列:是一种特殊的结构,类似于列表
- 不知道有多少人清楚的知道,在Oracle中,如果一个复合索引,假定索引(a,b,c)三个字段,删除了(包括unused)其中一个字段,Ora
- commands模块的适用commands模块是python的内置模块,他共有三个函数,使用help(commands)可以查看到FUNCT
- 把value插入dataframe的指定位置loc中,若插入的数据value已在DataFrame中,则返回 错误ValueError,如想
- 任务描述本关任务:利用 PyEcharts 绘制一个基本的漏斗图。相关知识为了完成本关任务,你需要掌握:1. Python 的基本语法2.
- 引言列表、字典:可变序列,可以执行增删改排序等字典:无序的一、字典的创建#使用{}创建scores = {'张三':100
- 描述如下: 用mysqldump 导出 Trigger 的时候遇到一个问题,贴出来,以免大家犯错。 在执行下面的操作时: [root@ytt
- // 获取字符串的字节长度function len(s) {s = String(s);return s.length + (s.match
- MS SQL Server中文版的预设日期datetime格式是yyyy-mm-dd hh:mm:ss.mmm 长短日期格式 --短日期格式
- 本文实例讲述了Python编程实现正则删除命令功能。分享给大家供大家参考,具体如下:脚本用途:在DOS下使用del功能箭头,不支持正则表达式
- 第一次在自己虚机上安装mysql 中间碰到很多问题 在这里记下来,分享一下。linux centOS 6mysql版本 mysql-5.7.
- 前言Python本身已有顺序表(List、Tupple)的实现,所以这里从栈开始。什么是栈想象一摞被堆起来的书,这就是栈。这堆书的特点是,最
- 前言首先是本文总体代码,改一下图像的读取路径就可以运行了,但我还是建议大家先看后面的步骤一行行敲代码,这样效果更好:""
- 几天前,想把上个月校园招聘的餐旅费报销一下。结果在公司内网的报销系统折腾了三个半小时才搞定。看看自己报销的金额:802块。觉得挺无奈,花了三
- 从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的。 mysql官方告诉我们需要修改m
- EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL
- 方法1: 代码如下:truncate table TableName 删除表中的所有的数据的同时,将自动增长清零。 如果有外键参考这个表,这
- 先按照下面的表结构创建mysql_order_by_test数据表,我们用实例一点一点告诉你,MySQL order by的用法。ORDER