使用paramiko.SSHClient.exec_command(),我可以模仿ssh -n命令行选项吗?
-n' Redirects stdin from /dev/null (actually, prevents reading from stdin). 我唯一的解决方案是扰乱命令并显式地管理stdin。
在本例中,bash脚本等待一行stdin。检查exit_status可以让我确定远程脚本是否已经完成。
>>> import paramiko
>>> client = paramiko.SSHClient()
>>> client.connect(**kwargs)
>>> i, o, e = client.exec_command("cat /tmp/one_input.sh")
>>> o.channel.exit_status_ready()
True
>>> print o.read()
echo "started"
read
echo "done"
>>> i, o, e = client.exec_command("bash /tmp/one_input.sh")
>>> o.channel.exit_status_ready()
False
>>> i.write("\n")
>>> o.channel.exit_status_ready()
True
>>> i, o, e = client.exec_command("bash /tmp/one_input.sh </dev/null")
>>> o.channel.exit_status_ready()
True发布于 2019-01-28 19:28:33
stdin.channel.shutdown_write()工程
参考文献:
https://stackoverflow.com/questions/54408828
复制相似问题