问题标签 [netmiko]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
329 浏览

python - netmiko 脚本连接路由器

当我运行我的Python脚本时,我在paramiko 库上遇到错误......

但是脚本的结果不理解。任何人都可以帮助解决这个问题..!?

这是错误

在处理上述异常的过程中,我遇到了另一个异常

这是新的异常

这是脚本

我该如何解决这个问题..!??

0 投票
2 回答
246 浏览

python - 使用 NetMiko 时使用 net_connect.send_config_set 命令的正确语法是什么

我目前正在为我的脚本使用一个列表来存储我发送到接入点的配置命令。这是我的语法。

脚本工作正常,但我的同事说我可以使用不同的方法来存储她使用的命令,但我无法让它工作。这是她的命令格式。她说这在她的脚本中有效。主要区别在于她是从另一个脚本调用它,而不是像我一样将它嵌入到同一个脚本中。只是想问社区我是否遗漏了什么。

ap_config = f"""conf t int dot 0 power local ofdm max power local cck max speed basic 6.0 9.0 12.0 18.0 24.0 36.0 48.0 54.0 end """

0 投票
0 回答
38 浏览

python-3.x - 在 Netmiko 或 Napalm 的帮助下可视化交换机的当前生成树

你好,我正在与 netmiko 合作一个项目,我想可视化交换机的当前生成树有没有办法做到这一点?还是图书馆?

0 投票
1 回答
433 浏览

python - Netmiko - 配置模式下的确认

我刚开始使用 netmiko 并遇到了一个脚本的问题。该脚本应该删除一个用户并创建另一个用户。我遇到的问题是在配置模式下确认我不知道如何处理它。

谢谢你。

0 投票
0 回答
96 浏览

python - netmiko:send_config_from_file:显示设备证书时执行中断

描述:我在 python 代码下面创建了多个设备中的命令自动化,但我面临的问题是代码在设备证书处自动停止

代码 :

命令文件数据

错误代码在批处理上正确执行,但在少数设备中,它会自动附加结尾并停止执行,尤其是在证书的情况下

2B8AB394 DA23AEEF 2B49BC4A D32B745B D2F2C6F7 64BF60EB 6F32086C D31A48FE 1B072237 256B80BC 32DE587D 73end

转变#

请帮助

0 投票
0 回答
304 浏览

python-3.x - (Python) Netmiko : 将路由器的配置与模板进行比较

我想使用 netmiko 库在 txt 文件中的路由器配置和模板之间进行比较。

使用“show run”命令显示所有路由器配置,必须逐块进行比较,例如:命令输出中的“access-list snmp”块与模板中的“access-list snmp”块等等,因为某些 permet xxxx 在 3 个 ACL 中重复,我必须检查它们是否在这 3 个 ACL 中。

我不知道如何进行此比较,如果您有任何想法,请帮助我。

我试图用这段代码来做,但这里的比较是逐行完成的:

0 投票
0 回答
251 浏览

python - Python3 Netmiko 和多线程?

我正在努力构建一个包含多线程的脚本。

[我的目标:][1] [1]:https://i.stack.imgur.com/P4yuy.png

该脚本的目标是使用线程连接到多个设备并使用顺序方法执行命令,这样我就可以有一个干净的输出,这样输出就可以有序了。

除此之外是将输出放入字典 output_dict 中,因此我使用此代码 output_dict[hostname].append(result_out) 将值放入列表格式但不起作用。

问题:

  1. 如何修复或正确使用线程,我可以看到一些输出,但由于线程的原因,大部分都看不到。
  2. 如何将输出添加为字典值但作为列表。ex {'CSRV#': ['outputa','outputb']}

先感谢您。希望您能够帮助我。

0 投票
1 回答
23 浏览

automation - 解析一组 cisco 交换机,编译 IP 和接口列表,然后将 netmiko 脚本指向该新列表。可能的?

我认为我的措辞是正确的。我想使用一组交换机并编译一个 IP 地址列表和特定接口,以便让 netmiko 推送命令。例如,扫描所有 cisco 交换机并将 vlan X 中所有未使用的接口列表放在一起。有人可以指出我如何做到这一点的正确方向吗?

0 投票
0 回答
503 浏览

python - 无法使用 NETMIKO 在路由器上建立 ssh 连接

我正在尝试开发一个 python 脚本,它使用 netmiko(ConnectHandler())通过另一个路由器连接到 cisco 路由器。SSH 到 R1,然后从 R1 SSH 到 R2。

我建立了到 R1 的第一个连接,我使用 Netmiko ssh 到路由器 R2 但我无法建立 cnx。 这是字典的创建

使用 ConnectHandler 和创建的字典连接到 R1

写 ssh 'src_ip_addr using write_channel() function' (src_ip_addr 是我要 ssh 的地址)

对上面的用户名和密码使用循环处理 密码好像没有写,所以cnx失败了。

验证 cnx 是否已建立

然后使用调度功能并将命令发送到目标路由器 R2

然后我尝试运行命令 sh ip route connected 和 sh route local

问题出在用户名和密码处理部分。

这是终端上的输出

这是完整的日志:

这是日志

userauth 是 OK INFO:paramiko.transport:Authentication (password) 成功!DEBUG:paramiko.transport:[chan 0] 最大数据包输入:32768 字节 DEBUG:paramiko.transport:[chan 0] 最大数据包输出:4096 字节 DEBUG:paramiko.transport:Secsh 通道 0 已打开。DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok DEBUG:paramiko.transport:[chan 0] Sesch channel 0 request ok DEBUG:netmiko:write_channel: b'terminal width 511\n' DEBUG:netmiko:Pattern is : 终端宽度 511 DEBUG:netmiko:_read_channel_expect read_data: CCCCCCCC

抄送


| | | BNET-A101 在布拉索夫 vLAB | | | | 这是一个由 ORANGE BUSINESS SERVICES 管理的私人系统 | | | | 访问此设备需要针对 | 的身份验证 | | | >> 实验室基础设施 TACACS 服务 << | | | | 你的“土星” 此处应使用登录名 | | | | | |_______________________________________________________________________________|

调试:netmiko:_read_channel_expect read_data:CCCCCCCC

CCCCCCCCCC CC C ________________________________________________________________ | | | 记录并可能监控此设备上的活动 | |________________________________________________________________|

Bnet-A101#端子宽度5

调试:netmiko:_read_channel_expect read_data:11

调试:netmiko:找到的模式:终端宽度 511 CCCCCCCC

抄送


| | | BNET-A101 在布拉索夫 vLAB | | | | 这是一个由 ORANGE BUSINESS SERVICES 管理的私人系统 | | | | 访问此设备需要针对 | 的身份验证 | | | >> 实验室基础设施 TACACS 服务 << | | | | 你的“土星” 此处应使用登录名 | | | | | |_______________________________________________________________________________| CCCCCCCC CCCCCCCCCC CC C ________________________________________________________________ | | | 记录并可能监控此设备上的活动 | |________________________________________________________________| | |_______________________________________________________________________________| CCCCCCCC CCCCCCCCCC CC C ________________________________________________________________ | | | 记录并可能监控此设备上的活动 | |________________________________________________________________| | |_______________________________________________________________________________| CCCCCCCC CCCCCCCCCC CC C ________________________________________________________________ | | | 记录并可能监控此设备上的活动 | |________________________________________________________________|

Bnet-A101#端子宽度511

DEBUG:netmiko:In disable_paging DEBUG:netmiko:Command: 终端长度 0

DEBUG:netmiko:write_channel: b'terminal length 0\n' DEBUG:netmiko:Pattern is: terminal\length\ 0 DEBUG:netmiko:_read_channel_expect read_data: Bnet-A101# DEBUG:netmiko:_read_channel_expect read_data: terminal len DEBUG:netmiko: _read_channel_expect read_data: gth 0

DEBUG:netmiko:Pattern found: terminal\length\ 0 Bnet-A101#terminal length 0

DEBUG:netmiko:Bnet-A101#终端长度 0

DEBUG:netmiko:Exiting disable_paging DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko: read_channel:调试:netmiko:write_channel:b'\n'调试:netmiko:read_channel:调试:netmiko:write_channel:b'\n'调试:netmiko:read_channel:调试:netmiko:write_channel:b'\n'调试:netmiko :read_channel: 调试:netmiko:write_channel: b'\n' 调试:netmiko:read_channel: Bnet-A101#

Bnet-A101# Bnet-A101# Bnet-A101# Bnet-A101# Bnet-A101# Bnet-A101#

DEBUG:netmiko:read_channel: DEBUG:netmiko:[find_prompt()]: 提示是 Bnet-A101# DEBUG:netmiko:write_channel: b'ssh 192.168.247.2\n' DEBUG:netmiko:read_channel: ssh 192.168.247.2

密码:

调试:netmiko:read_channel: 调试:netmiko:write_channel: b'\n' 调试:netmiko:read_channel:

DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n ' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\ n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel: CCCCAuthentication failed,请重试!

密码:

DEBUG:netmiko:read_channel: DEBUG:netmiko:[find_prompt()]: prompt is Password: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:Pattern is: Bnet-A101 DEBUG:netmiko:_read_channel_expect read_data: CCCCAuthentication failed , 请再试一次!

密码:

DEBUG:netmiko:_read_channel_expect read_data: CCCCAuthentication failed,请重试!密码:

调试:netmiko:_read_channel_expect read_data:

调试:netmiko:_read_channel_expect read_data:

[到192.168.247.2的连接被国外主机关闭] Bnet-A101# Bnet-A101#

DEBUG:netmiko:Pattern found: Bnet-A101 CCCCAuthentication failed,请重试!

密码:CCCC认证失败,请重试!密码:

[到192.168.247.2的连接被国外主机关闭] Bnet-A101# Bnet-A101#

调试:netmiko:read_channel:

Bnet-A101# Bnet-A101# Bnet-A101# Bnet-A101# Bnet-A101#

DEBUG:netmiko:Clear buffer 检测通道中的数据 DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'\n' DEBUG:netmiko:read_channel:

Bnet-A101#

DEBUG:netmiko:read_channel: DEBUG:netmiko:[find_prompt()]: prompt is Bnet-A101# DEBUG:netmiko:read_channel: DEBUG:netmiko:write_channel: b'show version\n' DEBUG:netmiko:Pattern is: show\版本 DEBUG:netmiko:_read_channel_expect read_data: s DEBUG:netmiko:_read_channel_expect read_data: 如何版本

DEBUG:netmiko:Pattern found: show\ version show version

调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试:netmiko:read_channel:调试: netmiko:read_channel: 调试:netmiko:read_channel:

在 R1 而非 R2 下执行的连接的船舶 ip 路由的输出

0 投票
0 回答
34 浏览

python - 如何使用网络和线程来收集、存储和组织输出?

需要您的帮助和建议,我正在从网络设备收集数据并将其存储到字典“output_dict = {}”中,同时我将使用该字典来组织数据,但是我被卡住了使用多线程时收集所有数据。

现在有2个问题。

  1. 在某些情况下,我可以从设备 1 和 2 获取数据。尽管在某些情况下我只获得了 1 个设备。:(

2021'}} <-- 设备 1 和 2 都存在。

  1. 我正在尝试将键值对附加到字典中,但它会覆盖数据。

我的目标是拥有这样的东西。所以我可以很容易地组织数据。[在此处输入图像描述][1] [1]:https://i.stack.imgur.com/EL5om.png

'output1'}{'MGMT IP': '192.168.2.113', 'output2'}

使用多线程和字典时如何实现这一点。谢谢。这是我的代码。