我正在用 paramiko 模块编写一个 python 脚本。它通过 ssh 连接到远程主机,运行脚本,并自动/回答交互式提示。到目前为止它工作得很好。对于输出,我希望 stdin、stdout、stderr 流都指向一起(指向 stdout),这样我就可以在 stdout.readlines() 中看到它们。但就像现在一样,我没有看到我在脚本中放置的 stdin.write() 调用。如何让 stdin.write() 包含在输出中?
import paramiko
bar = "5555"
foofilename = ""
cont = "Y"
fname = '/foobar/file.txt'
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect( host, port=22, username=uname, password=pword)
stdin, stdout, stderr=ssh.exec_command("script.sh")
stdin.write(bar+"\n")
stdin.flush()
stdin.write(foofilename+"\n")
stdin.flush()
stdin.write(cont+"\n")
stdin.flush()
stdin.write(fname+"\n")
stdin.flush()
output = stdout.readlines()
for line in output:
print line.split("\n")