Telnetlib python write()没有按预期工作

时间:2014-08-18 09:49:26

标签: python telnet telnetlib

我正在尝试自动化配置Linux服务器时使用的一组telnet命令。我目前正在尝试使用Python 2.7,并认为telnetlib将是最佳选择。 但不幸的是,它并没有像我期望的那样发挥作用。

tn = telnetlib.Telnet(ip, port)
print tn.read_until("SysCLI>")
tn.write("help" +"\n")
print tn.read_until("Registered components are:", 10)

这将在10秒后终止打印,但第一个打印行除外:“SysCLI>”。 我尝试了“回车”和“换行”的不同组合,包括“\ r”,“\ r \ n”,“\ n \ r”,它们似乎都没有帮助。有没有人对我失踪的事情提出建议?

更新:我在不同的服务器上尝试了我的代码,它似乎工作正常:

ip = "www.google.com"
port = 80

tn = telnetlib.Telnet(ip, port)
tn.write("Get / HTTP/1.1" +"\n" +"\n")

print tn.read_some()

所以我认为我的问题是服务器需要一些特殊字符来发送消息。

1 个答案:

答案 0 :(得分:0)

显然我有点误解了系统。在初始连接之后,这不再是telnet会话本身,而是实际上是在服务器上运行的应用程序。这就是我看到SysCLI提示的原因。所以这可能就是我不能使用telnetlib的原因。

相反,我将尝试使用subprocecss.Popen()通过终端运行会话。