一、简介

此模块用于简化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() # 通道的低级写入

七、参考文献

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。

pythonnet 引用_Python netmiko模块的使用相关推荐

  1. python模块相互引用_python导入模块交叉引用的方法

    实际项目中遇到python模块相互引用问题,查资料,终于算是弄明白了. 首先交叉引用或是相互引用,实际上就是导入循环,关于导入循环的详细说明,可见我摘自<python核心编程>第二版的摘抄 ...

  2. python import变量_Python import模块调用

    开发过程中代码越写越多,在一个文件里代码会越来越长,不容易维护,为了容易维护代码,我们把很多函数分组,分别放在不同的文件里,在Python中,一个.py文件就是模块(Module) 工具/原料 Pyt ...

  3. Linux开发 python引用自定义的模块

    三个py文件放到同一目录下 (base) vvcat@ubuntu:~/Desktop/vvcat_test$ pwd /home/vvcat/Desktop/vvcat_test (base) vv ...

  4. python中模块和包是什么_Python中模块和包的概念

    将所有代码放入一个py文件:无法维护 如果将代码分拆放入多个py文件,好处: 同一个名字的变量互不影响 模块a 模块b | | V V #a.py #b.py x = 5 x = 'str' def ...

  5. paramiko模块_玩转网络自动化之Netmiko模块

    我们知道,服务器的硬件和操作系统软件已经完全解耦,硬件和软件可以分开购买,并进行按需安装. 但是网络设备专用性强,硬件和操作系统软件高度耦合,即使相同厂商的设备,不同类型网络设备间也是拥有不同的CLI ...

  6. quartus 中直接引用的延时模块(Modelsim已验证)

    quartus 中直接引用的延时模块(Modelsim已验证) 软件:Quartus,Modelsim 语言:Verilog 引言 在设计时序时,我们经常要用到延时模块,即将某个信号进行延迟N个clk ...

  7. Python 网络自动化: 使用 Netmiko 模块批量下发华为、思科交换机配置

    批量下发华为.思科设备配置 通常我们对较多交换机进行配置变更的时候,都是通过人为 Login 设备,将需要变更的指令输入进去.这不仅效率低,容易出错,而且对做重复事情的厌恶情绪会直接影响变更的过程. ...

  8. python相对引用_Python 模块相对引用

    文件结构如下 python_directory/ ├── __init__.py └── app ├── __init__.py ├── sub1 │   ├── __init__.py │   └─ ...

  9. python模块相互引用_python中如何相互引用两个包中的模块

    包名为New_Start #!/usr/bin/python #-*- encoding: utf-8 -*- ''' Created on 2014年10月11日 @author : Adminis ...

  10. python 路径往上一层_Python常用模块之模块、包介绍和相关语法

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很 ...

最新文章

  1. Android ListView 自定义背景后 滚动时的背景变黑问题
  2. camx模型_【推荐】基于CAMx的空气质量模拟及污染来源解析技术
  3. xml引入约束示例(xsd文件)
  4. java随机抽取_java 随机抽取案例,不重复抽取
  5. ASP.NET自定义控件示例:ASP.NET Custom control with designer integration
  6. java基础篇(二) ----- java面向对象的三大特性之继承
  7. 私塾 java_JAVA私塾
  8. EXP-00091: Exporting questionable statistics
  9. mis系统的编写与设计
  10. 百度统计后台页面点击图提示无法建立连接
  11. 2021-11-12:前 K 个高频元素。给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。提示:1 <= nums.length <=
  12. 在vue中设置背景图片
  13. G1 垃圾收集器详解
  14. 精诚CRMPM系统应该要有哪些销售功能
  15. python中元组拆包_Python 元组拆包和具名元组解析
  16. 【Unity Shader】(2)半兰伯特模型 构建光照
  17. 基于深度学习的2D图像目标检测
  18. 学习C语言有什么书适合新手看
  19. 迭代器模式--更高、更快、更强(行为模式09)
  20. 关于选择护肤品功效成分时可以参考一下!!!

热门文章

  1. CF984A Game
  2. android调用本地js文件上传,原生JS实现前端本地文件上传
  3. 同济大学c语言程序设计答案,2020年同济大学道路与铁道工程考研真题试卷及试题答案,汽车理论及设计考研试题下载...
  4. centos7 python2换成python3后,yum报错解决
  5. 铺铜规则在哪设定_干货丨PCB layout结合生产设计必须遵循这六大规则!
  6. 2d shader unity 阴影_Unity里实现Sprite Renderer的阴影
  7. java 文件夹不存在则创建_java判断文件不存在就创建的方法
  8. html可视区高度,你真的懂js获取可视区宽高吗
  9. hadoop生态--Hive(4)--Hive分区中的动态分区、静态分区
  10. python脚本转换为EXE文件