0

我正在尝试自动化配置 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()

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

4

1 回答 1

0

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

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

于 2014-08-19T09:01:01.933 回答