首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netmiko - arista设备-netmiko.exceptions.ReadTimeout的读超时错误:- Python脚本

Netmiko - arista设备-netmiko.exceptions.ReadTimeout的读超时错误:- Python脚本
EN

Stack Overflow用户
提问于 2022-06-03 11:51:28
回答 1查看 909关注 0票数 0

我们正在尝试使用模块进入arista设备。当我们执行脚本时,我们会得到读取超时错误。我们用端口22检查了telnet到ip。我们可以使用telnet连接。请查找以下代码

代码语言:javascript
复制
    from netmiko import ConnectHandler

arista_vEOS  = {
        'device_type': 'arista_eos',
        'ip': '192.168.12.12',
        'username': 'asasasa',
        'password': 'ddasasas'
    }

print('Insert the IP of the Arista vEOS device:')
net_connect = ConnectHandler(**arista_vEOS)
print('----- Trying to establish a SSH connection with ' + arista_vEOS['ip'] + '... -----')
print('SSH connection successfully created!')
output = net_connect.send_command('show log 10')
print('Show IP Interfaces:')
print(output)

我们正在收到的错误:

代码语言:javascript
复制
Insert the IP of the Arista vEOS device:
Traceback (most recent call last):
  File "arultest.py", line 11, in <module>
    net_connect = ConnectHandler(**arista_vEOS)
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/ssh_dispatcher.py", line 344, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/base_connection.py", line 434, in __init__
    self._open()
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/base_connection.py", line 440, in _open
    self._try_session_preparation()
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/base_connection.py", line 879, in _try_session_preparation
    self.session_preparation()
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/arista/arista.py", line 16, in session_preparation
    self.set_terminal_width(command=cmd, pattern=r"Width set to")
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/base_connection.py", line 1235, in set_terminal_width
    output = self.read_until_pattern(pattern=pattern)
  File "/appl/pyenv_3.8/lib64/python3.8/site-packages/netmiko/base_connection.py", line 651, in read_until_pattern
    raise ReadTimeout(msg)
netmiko.exceptions.ReadTimeout:

Pattern not detected: 'Width set to' in output.

Things you might try to fix this:
1. Adjust the regex pattern to better identify the terminating string. Note, in
many situations the pattern is automatically based on the network device's prompt.
2. Increase the read_timeout to a larger value.

You can also look at the Netmiko session_log or debug log for more information.

你能帮忙吗。

EN

回答 1

Stack Overflow用户

发布于 2022-06-08 12:36:47

我编写了示例代码,它提供了netmiko连接到设备的提示功能,如下所示。打开一个创建用户&pass和ip列表的记事本就足够了。

代码语言:javascript
复制
import time
from multiprocessing.dummy import Pool as ThreadPool
from netmiko import Netmiko

with open("ip_list.txt","r") as f: # you should open ip lists
olt_list_huawei = f.readlines()

with open("user_pass.txt", "r") as f5:
    user_pass = f5.readlines() # you should create user&password list

def _ssh_(nodeip):
    try:
        arista_vEOS = {
            'device_type': 'arista_eos', 'ip': nodeip, 'username':
            username, 'password': password, }
        net_connect = Netmiko(**arista_vEOS)
        print(nodeip.strip() + "  " + "success entered")
    except Exception as e:
        print (e)
        return

    prompt_arista_fnk = net_connect.find_prompt()
    hostname_fnk = prompt_arista_fnk.strip("<" + ">")
    print(hostname_fnk)
    net_connect.send_command_timing("enable")  
    output = net_connect.send_command_timing("config")
    print("config mode entered")

f_2 = open("ip_list.txt","r")
ip_list = f_2.readlines()
f_2.close()

myPool = ThreadPool(100)
result = myPool.map(_ssh_,ip_list)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72489199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档