【发布时间】:2018-12-09 05:55:35
【问题描述】:
我需要使用 subprocess 模块在 ssh 会话中执行多个 shell 命令。
我可以一次执行一个命令:
subprocess.Popen(["ssh", "-o UserKnownHostsFile=/dev/null", "-o StrictHostKeyChecking=no", "%s" % <HOST>, <command>])
但是有没有办法在 ssh 会话中使用 subprocess 执行多个 shell 命令?如果可能,我不想使用包。
非常感谢!
【问题讨论】:
-
对于多个命令,这可能有点过头了,但是你可以写出一个 shell 脚本,scp 它,远程运行它并收集带有返回码的输出。同样,这只对更复杂的逻辑和更多的命令才有意义。对于少数命令,只需用“&&”、“;”、“||”链接它们或其他任何有意义的东西
-
@Sergey ':' 和 '&&' 选项都在我的回答中进行了概述,以及远程使用标准输入与
sh -s来执行我认为更好的@987654325 版本@ 并运行方法。
标签: python python-3.x ssh subprocess