【发布时间】:2021-11-07 05:52:32
【问题描述】:
我正在使用一个脚本,我使用 os.system() 命令向远程服务器 (ssh) 发出 shell 命令。我需要收集我在远程服务器上执行的命令的输出。问题是双重重定向。我正在使用 os.system() 来执行 ssh 命令,该命令在远程服务器上执行预期的命令。我打算利用这个输出。我只需要一些关于如何实现这一点的指示吗?
【问题讨论】:
-
问题不在于双重重定向。
ssh只是直接传递输出,所以额外的重定向不会增加任何新问题。但是os.system永远不会返回输出,它只是将它传递给stdout,因此无论是否有额外的重定向,您的代码都不起作用。 -
另外,如果您阅读了
os.system上的文档,它会明确告诉您“subprocess模块提供了更强大的工具来生成新进程并检索它们的结果; 使用那个模块比使用这个函数更可取。"然后它链接到一个部分,显示如何完全按照您的要求进行操作。
标签: python linux unix ssh os.system