paramiko exec_command(shell_script)提示没有通过stdin.write()得到答案

时间:2015-04-18 12:44:41

标签: python shell ssh prompt paramiko

我尝试使用paramiko在远程Linux机器上安装软件(它基本上是一个shell脚本)。 我知道一旦运行该软件将提示最终用户许可接受(y或n)。 所以我写了如下脚本,

==================== `

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect ('remoteLinuxHost', username=r'user', password='pass')

stdin, stdout, stderr = ssh.exec_command(r'/full/path/to/software')

stdin.write("y\n")
stdin.flush()

print "output ", stdout.readlines()

`

这在Red Hat机器上运行得非常好,但同样的代码永远挂在Suse Linux上! (只需打印输出,脚本将继续运行)

注意: 当它挂在Suse上时,我手动检查了

ps -ef | grep 'software' that displayed,
root     10941 10938  1 21:10 ?        00:00:00 /bin/sh software
root     11050 11031  0 21:10 ?        00:00:00 more softwareEndUserLicense.txt

这证实此处没有回答提示(y或n)。

  1. 我尝试过使用ssh.invoke_shell()方法得到相同的结果,也有软件的交叉检查权限,给了sudo,之前用/ bin / bash没什么用。
  2. 请建议。 谢谢。

0 个答案:

没有答案