pexpect脚本中的错误以root身份登录

时间:2013-02-21 05:53:22

标签: python-2.x pexpect

导入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

有人可以帮助我,因为我几天都遇到了这个问题。

任何帮助将不胜感激。 谢谢!!

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?