0

netmiko 脚本

from netmiko import ConnectHandler

    iosv_l2 = {
        'device_type': 'cisco_ios',
        'ip': '192.168.122.2',
        'username': 'test',
        'password': '123',
    }

    net_connect = ConnectHandler(**iosv_l2)
    output = net_connect.send_command('show ip int brief')
    print (output)

    config_commands = ['int loop 0', 'ip address 1.1.1.1 255.255.255.0']
    output = net_connect.send_config_set(config_commands)
    print (output)

    for n in range (2,21):
        print ("Creating VLAN " + str(n))
        config_commands = ['vlan ' + str(n), 'name Python_VLAN ' + str(n)]
        output = net_connect.send_config_set(config_commands)
        print (output) 

我最终遇到了这个错误

    接口 IP 地址好吗?方法状态协议
    GigabitEthernet0/0 未分配 YES 未设置
    GigabitEthernet0/1 unassigned YES unset down down
    vlan1 192.168.122.2 YES 手动 up up
    回溯(最近一次通话最后):
      文件“/usr/local/lib/python3.8/dist-packages/paramiko/channel.py”,第 699 行,在 recv
        out = self.in_buffer.read(nbytes, self.timeout)
      文件“/usr/local/lib/python3.8/dist-packages/paramiko/buffered_pipe.py”,第 164 行,读取
        提高 PipeTimeout()
    paramiko.buffered_pipe.PipeTimeout

    在处理上述异常的过程中,又出现了一个异常:

    回溯(最近一次通话最后):
      _read_channel_expect 中的文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 534 行
        new_data = self.remote_conn.recv(MAX_BUFFER)
      文件“/usr/local/lib/python3.8/dist-packages/paramiko/channel.py”,第 701 行,在 recv
        提高 socket.timeout()
    套接字超时

    在处理上述异常的过程中,又出现了一个异常:

    回溯(最近一次通话最后):
      文件“ssh.py”,第 15 行,在
        输出 = net_connect.send_config_set(config_commands)
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 1607 行,在 send_config_set
        输出 = self.config_mode(*cfg_mode_args)
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/cisco_base_connection.py”,第 49 行,在 config_mode
        返回超级(CiscoBaseConnection,self).config_mode(
      config_mode 中的文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 1514 行
        如果不是 self.check_config_mode():
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/cisco/cisco_ios.py”,第 31 行,在 check_config_mode
        return super(CiscoIosBase, self).check_config_mode(
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/cisco_base_connection.py”,第 37 行,在 check_config_mode
        返回 super(CiscoBaseConnection, self).check_config_mode(
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 1501 行,在 check_config_mode
        输出 = self.read_until_pattern(pattern=pattern)
      文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 609 行,在 read_until_pattern
        返回 self._read_channel_expect(*args, **kwargs)
      _read_channel_expect 中的文件“/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py”,第 542 行
        引发 NetMikoTimeoutException(
    netmiko.ssh_exception.NetMikoTimeoutException:读取通道超时,数据不可用。

网络拓扑结构

我如何解决这个问题...

4

2 回答 2

0

似乎您的网络拓扑基于 GNS3 项目软件,我很确定您有 CPU 问题,或者更确切地说,您的 L2/L3 设备的 CPU 占用。这可能是您的 netmiko 脚本 SSH 超时的原因。

于 2020-12-07T09:47:11.383 回答
0

您是否配置了用户权限级别?配置用户时,使用username test privilege 15 password 123. 如果您忘记提及特权,您最终会出现此错误。

于 2020-06-16T14:20:43.223 回答