问题
想用python的telnetlib模块对所有交换机做个自动备份,但是有几台3850交换机汇报如下错误:
buf = self.sock.recv(50)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
调试了一下午终于在一篇文章中找到了临时解决办法,但是具体原因未知,我分析可能是因为交换机的特定版本对退出后的处理问题,因为有10台左右3850,有6台不行,都不是一个版本。
这个链接中找到的答案http://ruwanindikaprasanna.blogspot.com/2018/02/winerror-10054-existing-connection-was.html
解决办法
就是不使用telnetlib的read_all(),改为read_until()
tn.write(b"testtest1234\r\n")
config = tn.read_until(b"testtest1234").decode('ascii')
tn.close()