angularjs list webview notifications vue特点 bootstrap后台管理模板 pmp教程 网校直播系统 mysql降序 拼接json字符串 linux查看jdk安装路径 python多线程 python中def的用法 java文档 java循环语句 java中泛型 java安装教程 java八种基本数据类型 linux磁盘管理 linux目录系统 python下载教程 街头篮球辅助 js删除数组指定元素 轮播图js代码 微信超级好友 考试练习系统 整站系统 网络克隆 什么模拟器最好 R语言初学者指南 扫微信二维码诈骗原理 idea导出jar包 明解c语言 pr怎么放大视频画面 c4d挤压 mmap文件怎么打开 类似迅雷的下载软件 mac修改器 祸星龙 regedit打不开
当前位置: 首页 > 学习教程  > python

【python 网络自动化】netmiko——netmiko 常用方法

2021/2/6 22:26:37 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

【python 网络自动化】netmiko——python 使用 netmiko 连接 h3c 交换机网络设备 【python 网络自动化】netmiko——netmiko 常用方法 【python 网络自动化】netmiko——使用 netmiko 进行交互式操作 文章目录命令相关send_command_timingsend_config_from_file模式相关enablec…

【python 网络自动化】netmiko——python 使用 netmiko 连接 h3c 交换机网络设备
【python 网络自动化】netmiko——netmiko 常用方法
【python 网络自动化】netmiko——使用 netmiko 进行交互式操作


文章目录

    • 命令相关
      • send_command_timing
      • send_config_from_file
    • 模式相关
      • enable
      • config_mode
      • check_config_mode
      • check_enable_mode
    • 其他
      • is_alive
  • 附录:Netmiko 中所有可以调用的方法

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

命令相关

send_command_timing

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

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

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

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

send_config_from_file

读取一个配置文件,然后将配置文件发送到设备上。

这个方法的本质是和send_config_set是一样的,只不过程序帮我们读取了配置而不用再在脚本中输入。

# 具体的实现方式
def send_config_from_file(self, config_file=None, **kwargs):
    with io.open(config_file, "rt", encoding="utf-8") as cfg_file:
    return self.send_config_set(cfg_file, **kwargs)

模式相关

Netmiko 中,模式相关的方法后端都是通过根据不同的设备发送相应的命令来实现;检查模式时是通过正则表达式匹配来实现。

enable

进入 enable 模式。

# 具体实现方式,思科设备为例
def enable(
    self,
    cmd="enable",
    pattern="ssword",
    enable_pattern=None,
    re_flags=re.IGNORECASE,
):
    """Enter enable mode."""
    return super().enable(
        cmd=cmd, pattern=pattern, enable_pattern=enable_pattern, re_flags=re_flags
    )

config_mode

进入 config 模式。

check_config_mode

检查是否处于config模式,返回结果为 True / False

check_enable_mode

检查是否处于enable模式,返回结果为 True / False

# 具体实现方式
def check_enable_mode(self, check_string="#"):
    """Check if in enable mode. Return boolean."""
    return super().check_enable_mode(check_string=check_string)

其他

is_alive

通过向 SSH 隧道发送空字符串,来判定是否连接仍然正常,返回结果为 True / False 。

附录:Netmiko 中所有可以调用的方法

Netmiko 中所有的网络设备的类都是基于BaseConnection类来实现的,通过查看该类来浏览所有方法。

# _ 开头的为私有方法,以下只查看外部可以直接使用的方法
from netmiko.base_connection import BaseConnection
for i in dir(BaseConnection):
    if not i.startswith('_'):
        print(i)

结果如下:

check_config_mode
check_enable_mode
cleanup
clear_buffer
close_session_log
commit
config_mode
disable_paging
disconnect
enable
establish_connection
exit_config_mode
exit_enable_mode
find_prompt
is_alive
normalize_cmd
normalize_linefeeds
open_session_log
paramiko_cleanup
read_channel
read_until_pattern
read_until_prompt
read_until_prompt_or_pattern
save_config
select_delay_factor
send_command
send_command_expect
send_command_timing
send_config_from_file
send_config_set
serial_login
session_preparation
set_base_prompt
set_terminal_width
special_login_handler
strip_ansi_escape_codes
strip_backspaces
strip_command
strip_prompt
telnet_login
write_channel

本文链接: http://www.dtmao.cc/news_show_2000101.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?