如何将使用SSH运行的命令的输出从Python脚本存储到文件中?

时间:2019-07-08 13:15:23

标签: python

我希望能够将使用SSH在Python脚本中在远程主机上运行的命令(例如top)的输出存储到文件中。

我知道如何使用SSH(我目前正在使用Paramiko连接到远程设备)。我需要运行命令,然后将输出存储在文本文件中。

2 个答案:

答案 0 :(得分:0)

您尝试了什么?

根据您的命令,您可以执行以下操作:

ssh user@machine command > log

日志将保存到您的计算机中。 一个真实的例子:

ssh root@192.168.x.x ls > log

如果您的命令不支持stdout的输出,请按以下方式运行它:

ssh root@192.168.x.x "command -o output; cat output"  > log

使用python,您可以使用子进程并执行相应的命令,例如:

import subprocess

def yourfunction():
     subprocess.call("ssh user@machine command > log",shell=False)

yourfunction()

答案 1 :(得分:0)

如果使用 paramiko exec_command方法执行命令,则可以执行以下操作:

stdin, stdout, stderr = your_ssh_client_object.exec_command("top")
with open("out.txt", "w") as f:
    f.writelines(stdout.readlines())

如果您也关心错误输出,则需要将其附加到同一文件或存储在单独的文件中。

注意:由于OP本身没有提供minimal, workable example,因此上述代码未经测试也无法单独运行。