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

2024-03-28 18:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 文件命令脚本paramiko远程topssh文本文件
2条回答

你试过什么?你知道吗

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

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,您可以使用subprocess并执行相应的命令,例如:

import subprocess

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

yourfunction()

如果使用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。你知道吗

相关问题 更多 >