如何使Paramiko运行iPerf等非标准命令

时间:2018-10-28 03:16:09

标签: python ssh paramiko iperf

我想在两台笔记本电脑之间使用ssh并使用Paramiko发送命令。诸如lsecho之类的命令可以按预期工作,但是当使用非标准命令(如iPerf)时,出现以下错误:

['bash: iperf: command not found\n']

如果我通过手动终端打开ssh连接,该命令将正常工作。

代码如下:

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=HOST, username=USER, password=PWD)
stdin, stdout,stderr = ssh.exec_command("iperf -s")

1 个答案:

答案 0 :(得分:1)

当您拥有~/.bashrc这样的shell配置文件时,就会发生这种情况,该配置文件将PATH环境变量设置为包括非标准的可执行搜索路径。

要解决此问题,只需手动登录并运行iperf即可找出which iperf的位置。拥有完整路径后,请在exec_command()中使用它。

例如,您的新代码可能如下所示:

ssh.exec_command("/opt/local/bin/iperf -s")