python模块telnetlib的buffer size如何修改

发布于 2022-09-03 19:23:41 字数 2051 浏览 16 评论 0

使用Python的第三方模块telnetlib,来对交换机执行批量操作,执行返回值数据量大的命令是出现异常,看报错应该是buffer的size被限制了,不知道如何修改,不知道大家有没有做过的?
代码和异常在下方。

代码:

#!usr/bin/env python
# coding:utf-8

import threading
import telnetlib
import getpass
import socket
import time

class TelnetThreadClass(threading.Thread):

    def __init__(self, username, password, command, host, port=23, timeout=5):
        threading.Thread.__init__(self)
        self.host = host
        self.port = port
        self.timeout = timeout
        self.username = username
        self.password = password
        self.command = command

    def run(self):
        self.setName(self.host)
        session = telnetlib.Telnet(self.host, self.port, self.timeout)
        session.read_until("Username: ")
        session.write(self.username + '\n')
        if self.password:
            session.read_until("Password: ")
            session.write(self.password + '\n')
        # for command in self.commands:
            session.write("{0}\n".format(command))
        session.write("exit\n")
        print session.read_all()
        print '*********************************************'


if __name__ == '__main__':
    hosts = ['10.1.1.1', '10.1.1.2']
    command = 'show version'
    username = 'username'  # raw_input("Enter your username: ")
    password = 'password'   # getpass.getpass('Enter your password: ')
    for host in hosts:
        my_telnet = TelnetThreadClass(username, password, command, host)
        my_telnet.start()
        print my_telnet.name
        my_telnet.join()

异常:

Exception in thread 10.1.1.1:
Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
    self.run()
  File "E:/PycharmProjects/MyTest/demo/pex_demo/telnet_mananger.py", line 34, in run
    print session.read_all()
  File "C:\Python27\lib\telnetlib.py", line 385, in read_all
    self.fill_rawq()
  File "C:\Python27\lib\telnetlib.py", line 576, in fill_rawq
    buf = self.sock.recv(50)
timeout: timed out

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文