SSHClient.exec_command() 报告“找不到命令”

萨克

我写了一个脚本来帮助其他人在我们工作的存储系统上运行简单的日常命令。该脚本适用于返回简短输出的命令,例如 ls,但是,当脚本想要运行具有大输出的命令时,不会返回输出。它几乎好像超时了,但根本没有反馈,例如我认为可能有一部分命令输出。我已经围绕这个做了一些研究,并发现了其他有同样问题的人。他们得到的答案是使用:

stdin, stdout, stderr = client.exec_command(command)

我已经在我的代码中使用了它。我想知道这是否与缓冲区大小有关,令人讨厌的是我不知道如何在我的代码中实现它。我尝试使用以下方法添加时间延迟:

time.sleep(10)

但没有快乐。我也试过使用:

print stdout.channel.recv_exit_status()

但是,我得到了 127 的回报,所以我认为我在那里偏离了目标!我的代码是:

def ssh_command(ip, user, passwd, command):
   client = paramiko.SSHClient()
   client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   client.connect(ip, username=user, password=passwd)
   stdin, stdout, stderr = client.exec_command(command)
   print stdout.read()
   print stderr.read()
   return 
if __name__ == '__main__':
   ssh_command(ip, user, passwd, command)

我省略了前几个代码块,其中一些变量由用户的原始输入定义。它很长,所以我认为最好省略,但很自然,如果需要,我可以发布它。

对于那些对我尝试运行的命令感兴趣的人,这是他们的 GPFS(Spectrum Scale)存储系统独有的 IBM 命令。命令是:

mmdf mmfs1 --block-size auto

该命令返回存储系统上所有磁盘池的存储空间。

更新:

尽管在 SSH 连接到存储控制器时stderr.read()该命令bash: mmdf: command not found工作正常,但该命令无法识别 ( )状态

知乎

根据您的最新评论,您应该mmdf在运行命令时使用绝对路径

client.exec_command("/the/path/to/mmdf mmfs1 --block-size auto")

要找出在哪里mmdf,请手动登录到服务器并运行:

which mmdf
# or
type -P mmdf

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模拟paramiko.SSHClient()。exec_command()

来自分类Dev

增加 paramiko.SSHClient.exec_command() 宽度

来自分类Dev

使用Python Paramiko exec_command执行某些Unix命令会失败,并显示“ <command> not found”

来自分类Dev

在设备上使用Paramiko exec_command执行命令不起作用

来自分类Dev

使用Python Paramiko exec_command执行时命令未完成

来自分类Dev

python sshclient挂在linux命令上

来自分类Dev

Windows .bat脚本中的Measure-Command:找不到命令

来自分类Dev

在python子进程中找不到命令'command'

来自分类Dev

paramiko SSHClient连接卡住

来自分类Dev

SSHClient paramiko Python?

来自分类Dev

WkHTMLtoPDF 0.12.2.1 PHP exec xvfb运行:错误:找不到xauth命令

来自分类Dev

如何在python的exec_command中传递变量值?

来自分类Dev

在-exec中找不到参数

来自分类Dev

使用Jenkins运行AWS Command Line Interface:找不到命令吗?

来自分类Dev

碧玉报告-找不到资源

来自分类Dev

碧玉报告-找不到资源

来自分类Dev

MSBuild.exe <Exec Command =“ call test.bat” />失败,找不到指定的路径

来自分类Dev

MSBuild.exe <Exec Command =“ call test.bat” />失败,找不到指定的路径

来自分类Dev

如何保持与.net ssh的会话sshclient

来自分类Dev

libcloud FileDeployment SSHClient._transport为NoneType

来自分类Dev

如何保持与.net ssh的会话sshclient

来自分类Dev

如何使用paramiko SSHClient连续输出

来自分类Dev

使用 find -exec command {} + 调用多少命令

来自分类Dev

找不到phpuml命令

来自分类Dev

sh:找不到命令

来自分类Dev

找不到命令推进

来自分类Dev

找不到端口命令

来自分类常见问题

Pipenv:找不到命令

来自分类Dev

找不到命令'lint'

Related 相关文章

热门标签

归档