Python Telnet脚本

Python Telnet脚本,python,ubuntu,telnetlib,Python,Ubuntu,Telnetlib,我不熟悉python脚本,但我已经编写了一个脚本,可以与网络上的其他设备一起使用。我试图修改一个脚本,该脚本将指示远程设备将其配置备份到TFTP服务器。它适用于我的3Com、HP交换机,但我刚刚添加了一个DLINK POE交换机,它会死掉。代码如下 import getpass import sys import telnetlib HOST = "10.3.5.90" user = "admin" password = "Password" tn = telnetlib.Telnet(HO

我不熟悉python脚本,但我已经编写了一个脚本,可以与网络上的其他设备一起使用。我试图修改一个脚本,该脚本将指示远程设备将其配置备份到TFTP服务器。它适用于我的3Com、HP交换机,但我刚刚添加了一个DLINK POE交换机,它会死掉。代码如下

import getpass
import sys
import telnetlib

HOST = "10.3.5.90"
user = "admin"
password = "Password"

tn = telnetlib.Telnet(HOST)

tn.read_until("DGS-12010-10P login: ")
tn.write(user + "\r")
tn.read_until("Password: ")
tn.write(password + "\r")
tn.read_until("DGS-1210-10P> ")
tn.write("upload cfg_toTFTP tftp://10.5.5.2/DGS-1210-10P.bin" + "\r")
tn.read_until("DGS-1210-10P> ")
tn.write("logout" + "\r")
tn.close()

print "Backup Complete POE Switch"
我总是得到下面的输出,它超时了。我不知道我做错了什么,因为它与30多台设备一起工作,没有打嗝

Traceback (most recent call last):
File "/backup/scripts/05-POE-switch.py", line 13, in <module>
tn.read_until("Password: ")
File "/usr/lib/python2.7/telnetlib.py", line 319, in read_until
return self.read_very_lazy()
File "/usr/lib/python2.7/telnetlib.py", line 395, in read_very_lazy
raise EOFError, 'telnet connection closed'
回溯(最近一次呼叫最后一次):
文件“/backup/scripts/05 POE switch.py”,第13行,在
tn.read_直到(“密码:”)
文件“/usr/lib/python2.7/telnetlib.py”,第319行,只读
返回self.read_very_lazy()
文件“/usr/lib/python2.7/telnetlib.py”,第395行,以read\u very\u格式
提高EOR,“telnet连接已关闭”

提前感谢您的帮助。

请尝试发送
\r\n
,而不仅仅是
\r
作为行尾终止符。我想这是你的问题

否则,请使用wireshark监视“手动”telnet会话之间的TCP通信
和您的设备:您将看到它确切发送的内容,您将看到您必须发送的内容……

如果您手动telnet到设备,它是否工作?它是否会发出您在脚本中等待的
准确的
响应?如果我手动telnet到设备并键入命令,它会工作并将文件发送到我的服务器。当我尝试执行Python脚本时,会出现响应,看起来就像我正在拉出wireshark。将其更改为“”\r\n“”对此没有任何新闻?你找到解决问题的办法了吗?