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)

これは、最初の印刷行「SysCLI>」のみを印刷して 10 秒後に終了します。「\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 に答える