Я пытаюсь отправить некоторые команды через telnet на сервер.Это было сделано вручную много раз, но меня попросили автоматизировать его с помощью Python.
Мой код начинается так:
import telnetlib
HOST = "xxx.xxx.xxx.xxx"
PORT = xx
print("connecting...")
tn = telnetlib.Telnet(HOST, PORT)
tn.read_until(b"250")
print("connection established!\nsending ehlo...")
tn.write(b"EHLO test.com")
tn.read_until(b"250")
print("response received")
...
Если я ввожу команды вручную, это работает,Но сценарий прерывается через несколько минут со следующим выводом:
connecting...
connection established!
sending ehlo...
Traceback (most recent call last):
File "telnet_test.py", line 11, in <module>
tn.read_until(b"250")
File "/usr/lib/python3.6/telnetlib.py", line 327, in read_until
return self.read_very_lazy()
File "/usr/lib/python3.6/telnetlib.py", line 403, in read_very_lazy
raise EOFError('telnet connection closed')
EOFError: telnet connection closed
В соответствии с выводом мое соединение telnet было закрыто, но я не понимаю, почему !?Может быть важно: после запуска вывод говорит connecting...
в течение нескольких минут, а затем выводится остальная часть вывода, включая исключение get.Функция read_until()
блокируется дольше, чем необходимо, поэтому тайм-ауты моего соединения?И как мне это решить?