telnetlib备份思科交换机10054

问题

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

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

1
2
3
tn.write(b"testtest1234\r\n")
config = tn.read_until(b"testtest1234").decode('ascii')
tn.close()

telnetlib备份思科交换机10054
http://example.com/2022/11/29/telnetlib备份思科交换机10054/
作者
WangQiang
发布于
2022年11月29日
许可协议