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利用hook技术破解https的实例代码
Mar 25 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
使用tensorflow实现线性回归
Sep 08 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
Python字节单位转换实例
Dec 05 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
Matplotlib配色之Colormap详解
Jan 05 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 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
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP中常用的转义函数
2014/02/28 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
js获取当前select 元素值的代码
2010/04/19 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python用户管理系统
2018/03/13 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
西式婚礼证婚词
2014/01/12 职场文书
行政副总岗位职责
2014/02/23 职场文书
入党介绍人评语
2014/05/06 职场文书
数据保密承诺书
2014/06/03 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis