0%

XML 相关的知识可以在 w3school 上进行了解。
假设你已经对 XML 的基本概念有一些了解,本文介绍了 Python lxml 模块对 XML 的一些操作方法。

lxml is the most feature-rich and easy-to-use library for processing XML and HTML in the Python language.

文中所有代码块都是基于 etree 来操作的,代码同一行后的注释为运行结果。

1
from lxml import etree
阅读全文 »

Netmiko 的 send_command 方法可以很方便的在网络设备上执行命令,如各种 show、发送一些基本配置等;但是如果是交互式的操作,例如拷贝文件、升级系统等需要人工确认的操作,貌似就有点不行了。

其实 send_command 方法提供了这个功能,从它的参数中可以看到,有一个expect_string参数,可以通过这个参数来进行交互式操作。

这个参数就是表面意思: 期望字符串,实际使用中,这里需要传入一个正则表达式,然后 Netmiko 会从返回的文本中搜索该字符串,找到之后即为执行结束,关闭连接。

阅读全文 »

之前文章中,介绍了 Netmiko 中 send_commandsend_config_set 两个方法以及区别。
本篇内容来介绍一下 Netmiko 的常用方法以及应用场景。

命令执行相关

def send_command_timing():

基于时间延迟来执行命令。
如果通过这个方法登录到设备执行命令,不管命令有没有执行完成,Netmiko 都会在指定的时间内结束 SSH 连接,一般不推荐使用。

这里可以对比一下send_command,这个方法会检测设备的提示符,例如>]# 等,它会一直等待接收数据,直到检测到提示符后再进行退出(也有一个默认的超时时间)。

我们可以通过delay_factormax_loops来控制等待时间。

  • send_command_timing:默认超时时间约为 15 秒,即登录设备 15 秒后关闭 SSH 连接
  • send_command:默认超时时间约为 100 秒,即 100 秒未检测到提示符就关闭 SSH 连接
阅读全文 »

什么是 Netmiko

是一个基于 paramiko 二次封装的,可以通过 SSH 连接多种网络设备的库,从 3.0 版本以来,加入了对国内厂商的支持,是非常不错的网络自动化工具。

目前支持设备几乎覆盖了市面上大部分设备,包括锐捷、华三、华为、思科、f5 等等,具体的列表见后文。

如何使用

安装

首先需要具备Python3.6以上版本的环境,使用pip可以直接安装。
国内下载速度很慢,可以参考Python 下载加速:pip pypi 使用国内源及永久配置 pip 源进行配置。

1
2
# 安装
pip install netmiko

出现 Successfully installed netmiko 即为安装成功。

阅读全文 »