0

私は Python スクリプト作成に非常に慣れていませんが、Telnet を介して定期的に実行するいくつかの単純なタスクを自動化できるかどうかを確認するために試してみようと思いました。

基本的な python telnet スクリプトを見つけました。

import getpass
import sys
import telnetlib

HOST = "localhost"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

tn.write("ls\n")
tn.write("exit\n")

print tn.read_all()

これは機能しているように見えますが、コンソールには何も返されません。ログイン プロセスには数秒かかるため、処理が速すぎて、ユーザー プロンプトを待つ必要があると思います。ということで、これを追加してみました。

tn.read_until(">")

動作しません...このエラーが発生します

  File "test.py", line 16, in <module>
    tn.read_until(">")
  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'
EOFError: telnet connection closed

シンプルなものが欠けているように感じます...しかし、解決策は私をほのめかしているようです. どんな入力でも大歓迎です!

4

2 に答える 2