Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python telnetlib以其他方式按Enter键,可以';当服务器刚刚启动时,请不要继续使用脚本_Python_Console_Automated Tests_Telnet_Telnetlib - Fatal编程技术网

Python telnetlib以其他方式按Enter键,可以';当服务器刚刚启动时,请不要继续使用脚本

Python telnetlib以其他方式按Enter键,可以';当服务器刚刚启动时,请不要继续使用脚本,python,console,automated-tests,telnet,telnetlib,Python,Console,Automated Tests,Telnet,Telnetlib,我在linux虚拟机上使用telnetlib运行python脚本 99%的时间,tn.write('\n')工作正常 但有一种情况是服务器刚刚启动, 在真正的控制台中,第一个登录的用户需要在看到登录信息后按键盘上的Enter键才能继续。 如果他们不按Enter键,他们将永远保留登录信息 这次tn.write('\n')的工作原理与在控制台中手动按Enter键的工作原理不同。 即使不是使用下面的脚本按Enter键的方式: tn.write('\r\n') tn.write("\r\n".encod

我在linux虚拟机上使用telnetlib运行python脚本

99%的时间,tn.write('\n')工作正常

但有一种情况是服务器刚刚启动, 在真正的控制台中,第一个登录的用户需要在看到登录信息后按键盘上的Enter键才能继续。 如果他们不按Enter键,他们将永远保留登录信息

这次tn.write('\n')的工作原理与在控制台中手动按Enter键的工作原理不同。 即使不是使用下面的脚本按Enter键的方式:

tn.write('\r\n')
tn.write("\r\n".encode('ascii'))

# or with time.sleep(1) inserted with any value
我的脚本可以使用密码连接到服务器,就像每次一样

通过使用read_some或read_eager,我非常确定控制台上(我的脚本遇到)只有一个信息表,没有提示,没有要求用户按Enter键的指示,只要按Enter键,就可以进入控制台并得到第一个提示


(如果我手动登录,按Enter和exit,我的脚本运行平稳,因为它不再是第一个用户。)

尝试调用debug,我通常在开始时使用它:

tn = telnetlib.Telnet(ip_to_connect)

tn.set_debuglevel(5)

这有助于我获取控制台返回的信息,当它是ASCII控制台时,您将得到类似这样的信息:'\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\r\n'并且可以在
read.until()

中使用此信息。通过从telnet的角度跳出,我使用os.system或SUBSPROCESS.call来键入enter。。它似乎是有效的,还有其他方法吗?它不是每次都有效,拜托,任何人都能弄明白吗?ssh是否也有同样的问题(“重启后无法通过telnet登录”)?尝试远程运行命令