导入pexpect,os,sys
cmd =“sudo su - ”
p = pexpect.spawn(cmd,timeout = 60)
pass_expect =“。* assword。*”(因为我得到提示“用户的[sudo]密码”)
p.expect(pass_expect)
打印“我想要密码”
p.sendline( “输入mypassword”)
p.logfile = sys.stdout
p.sendline( “登出”)
p.close()
执行上述脚本时出现以下错误
错误
追踪(最近一次呼叫最后一次):
文件“test.py”,第11行,in p.expect(pass_expect)
文件“/usr/lib/python2.6/dist-packages/pexpect.py”,第1311行,期待
return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
文件“/usr/lib/python2.6/dist-packages/pexpect.py”,第1325行,在expect_list中
return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize)
文件“/usr/lib/python2.6/dist-packages/pexpect.py”,第1409行,在expect_loop中
raise TIMEOUT (str(e) + '\n' + str(self))
pexpect.TIMEOUT:read_nonblocking()中超出了超时。
版本:2.3($ Revision:399 $)
命令:/ usr / bin / sudo
args:['/ usr / bin / sudo','su',' - ']
搜索者:searcher_re:0: re.compile(".*assword.*")
缓冲区(最后100个字符):root @:〜#
之前(最后100个字符):root @:〜#
之后:
匹配:无 match_index:无 exitstatus:无 flag_eof:错误 pid:16933 child_fd:3 关闭:错误 超时:60
定界符: logfile:无 logfile_read:无 logfile_send:无 maxread:2000 ignorecase:假 searchwindowsize:无 delaybeforesend:0.05 delayafterclose:0.1 delayafterterminate:0.1
有人可以帮助我,因为我几天都遇到了这个问题。
任何帮助将不胜感激。 谢谢!!
答案 0 :(得分:0)
如果您以超级用户身份登录,则意味着将 root @ localhost
child = pexpect.spawn("ssh root@localhost")
child.logfile = open("/tmp/mylog", "w")
child.expect(".*assword:")
child.send("guest\r")
child.expect(".*\$ ")
child.sendline("python -V\r")
print child.before
How to login the super user(root) in remote host system using pexpect?