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开发常用的一些开源Package分享
Feb 14 Python
Python使用爬虫猜密码
Feb 19 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 Python
python中关于for循环的碎碎念
Jun 30 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
Django celery异步任务实现代码示例
Nov 26 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php 购物车完整实现代码
2014/06/05 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
用JS控制回车事件的代码
2011/02/20 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
详解vue 组件注册
2020/11/20 Vue.js
python+selenium开发环境搭建图文教程
2017/08/11 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
windows下python安装小白入门教程
2018/09/18 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年招聘工作总结
2014/12/12 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
python基础之函数的定义和调用
2021/10/24 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python