我是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'
预先感谢您的帮助。
最佳答案
尝试发送\r\n
而不是仅\r
作为行结束符。我认为是你的问题。
否则,使用wireshark监视“手动” telnet会话之间的TCP通信
和您的设备:您将看到它确切发送的内容,并且您将看到必须发送的内容...
关于python - Python Telnet脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20640986/