我们正在尝试使用模块进入arista设备。当我们执行脚本时,我们会得到读取超时错误。我们用端口22检查了telnet到ip。我们可以使用telnet连接。请查找以下代码
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)我们正在收到的错误:
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.你能帮忙吗。
发布于 2022-06-08 12:36:47
我编写了示例代码,它提供了netmiko连接到设备的提示功能,如下所示。打开一个创建用户&pass和ip列表的记事本就足够了。
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)https://stackoverflow.com/questions/72489199
复制相似问题