首页 > 解决方案 > 如何让 Paramiko 运行 iPerf 等非标准命令

问题描述

我想使用 ssh 在两台笔记本电脑之间发送命令并使用 Paramiko 来执行此操作。ls和之类的命令echo按预期工作,但是当使用 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")

标签: pythonsshparamikoiperf

解决方案


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

要修复它,只需iperf手动登录并运行which iperf. 一旦你有了完整的路径,在你的exec_command().

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

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

推荐阅读