Python netmiko模块的使用


Posted in Python onFebruary 14, 2020

一、简介

此模块用于简化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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python多进程操作实例
Nov 21 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
Python中random模块生成随机数详解
Mar 10 Python
Python数据类型详解(二)列表
May 08 Python
requests和lxml实现爬虫的方法
Jun 11 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python 读写文件的操作代码
Sep 20 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
python Django里CSRF 对应策略详解
Aug 05 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
快速创建python 虚拟环境
Nov 28 Python
pytorch模型存储的2种实现方法
Feb 14 #Python
Python3运算符常见用法分析
Feb 14 #Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 #Python
python 实现线程之间的通信示例
Feb 14 #Python
Python3变量与基本数据类型用法实例分析
Feb 14 #Python
OpenCV中VideoCapture类的使用详解
Feb 14 #Python
Python networkx包的实现
Feb 14 #Python
You might like
Smarty模板快速入门
2007/01/04 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
Symfony查询方法实例小结
2017/06/28 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python sublime安装及配置过程详解
2020/06/29 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
机关单位动员会主持词
2014/03/20 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
Javascript之datagrid查询详解
2021/09/15 Javascript