telnetlib备份cisco交换机10054

问题

想用python的telnetlib模块对所有交换机做个自动备份,但是有几台3850交换机汇报如下错误:
telnetlib备份cisco交换机10054_第1张图片

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()

telnetlib备份cisco交换机10054_第2张图片

你可能感兴趣的:(网络,python,网络,python)