This question already has answers here:
Command executed with Paramiko does not produce any output

(1个答案)



Some Unix commands fail with “<command> not found”, when executed using Python Paramiko exec_command

(1个答案)


7个月前关闭。




我使用以下代码通过SSH成功​​执行了命令:
import paramiko

hosts = ["192.168.1.156"]

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

for host in hosts:
    client.connect(host, username='user', password='******')
    stdin, stdout, stderr = client.exec_command("df -H")
    output = ''.join(stdout.readlines())

Print(output)

但是,一旦我将“df -H”命令交换为“smartctl -H disk1”,我就不会从Python得到任何输出。
值得一提的是,我也没有任何错误。

当我在终端中运行“smartctl -H disk1”时,它可以正常工作并提供我期望的输出,但是它只是通过Paramiko命令运行,这似乎是问题所在。

有任何想法吗?

干杯,

乔治

最佳答案

取决于哪个命令不起作用。

client.exec_command(“smartctl -H disk1”)

然后,我在提供“/ usr / local / bin / smartctl”的终端中输入“哪个smartctl”

代替这个,而不仅仅是smartctl,可以治疗。

例如client.exec_command(“/ usr / local / bin / smartctl -H disk1”)

干杯!

10-07 13:08