1

导入 pexpect,操作系统,系统

cmd = "须藤苏-"

p = pexpect.spawn(cmd, timeout=60)

pass_expect = ".*assword.*" (当我收到提示说 "[sudo] password for user" )

p.expect(pass_expect)

打印“我要密码”

p.sendline("我的密码")

p.logfile = sys.stdout

p.sendline("注销")

p.close()

执行上述脚本时出现以下错误

错误

回溯(最近一次通话最后):

文件“test.py”,第 11 行,在 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($修订:399 $)

命令:/usr/bin/sudo

参数:['/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_read:无 logfile_send:无 maxread:2000 ignorecase:错误 searchwindowsize:无 delaybeforesend:0.05 delayafterclose:0.1 delayafterterminate:0.1

有人可以帮助我,因为我几天以来一直陷入这个问题。

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

4

1 回答 1

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

如何使用 pexpect 在远程主机系统中登录超级用户(root)?

于 2013-04-06T06:00:05.713 回答