我對python腳本非常陌生,但我想我會試試看看我是否可以自動執行一些簡單的任務,並通過Telnet定期執行這些任務。telnetlib error with read_until
我發現了一個基本的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
我覺得我失去了一些東西簡單......但解決的辦法似乎是影射我。任何意見將不勝感激!
也許你需要發送'\ r \ n'而不是'\ n',你可以用wireshark確認 –
這樣做了!我用\ r替換了\ n,現在它似乎正在處理一項治療! – user2735454