- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个脚本来帮助其他人在我们工作的存储系统上运行简单的日常命令。该脚本可以很好地处理返回简短输出的命令(例如 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
该命令返回存储系统上所有磁盘池的存储空间。
stderr.read()
指出该命令无法识别 ( bash: mmdf: command not found
),尽管该命令在通过 SSH 连接到存储 Controller 时有效。
最佳答案
根据您的最新评论,您应该在运行命令时使用 mmdf
的绝对路径:
client.exec_command("/the/path/to/mmdf mmfs1 --block-size auto")
要找出 mmdf
的位置,请手动登录服务器并运行:
which mmdf
# or
type -P mmdf
关于python - SSHClient.exec_command() 报告 "command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45793634/
我有使用 j2ssh sshclient 在 linux 服务器上执行远程命令的方法。执行远程命令可能需要几秒钟到一分钟多的时间。我需要 Java 程序等到命令完成执行后再继续,但事实并非如此。 Ja
我发现,如果将文件命名为“paramiko.py”,则会出现此错误,但我将文件命名为其他名称,但仍然会出现相同的错误。我真的不知道我做错了什么,我非常有信心我成功安装了 PyCrypto 和 Para
我有一个脚本,可以循环十几个主机并在每个主机中执行多个功能。这些函数将 SSHClient() 作为参数,然后对其执行命令。 我可以简单地在 SSHClient() 上设置一些属性,但在这样做之前,是
我需要通过 ssh.exec_command() 模拟执行一些远程命令它返回元组 (stdin, stdout, stderr) 作为 paramiko.ChanelFile 对象。 因此,我将命令输
我在 Python 3 虚拟环境中安装了 Salt,并创建了一个 Salt 配置,该配置使用非根文件夹来存储所有内容 (/home/user/saltenv)。在 venv 中使用 salt-ssh
将字符串转义为安全用作命令行参数的最佳方法是什么?我知道使用 subprocess.Popen 会使用 list2cmdline() 来解决这个问题,但这似乎对 paramiko 不起作用。示例: f
当我调用 Paramiko SSHClient 类的连接函数时,它会输出一些关于建立连接的日志数据,我想抑制这些数据。 有没有办法通过 Paramiko 本身或一般的 Python 来做到这一点? 最
我正在尝试使用 paramiko 检查远程文件是否可写。 我当前的代码是 from paramiko.ssh_exception import SSHException, BadHostKeyExce
这个问题已经有答案了: Some Unix commands fail with " not found", when executed using Python Paramiko exec_comm
如何通过远程服务器上的 SSHClient 进行 SFTP 传输?我有一个本地主机和两个远程主机。远程主机是备份服务器和 Web 服务器。我需要在备份服务器上找到必要的备份文件并通过 SFTP 将其放
我是 python 和 linux 的新手,正在尝试以下操作 ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_pol
这是我在 StackOverflow 中的第一篇文章,所以我希望以正确的方式发表! :) 我的新工作需要连接到多个服务器并在所有服务器中执行一个 python 脚本。我对服务器不是很熟悉(并且刚开始使
我在使用 SSH.NET 库时遇到了 2 个问题。 我想创建 SSH 连接然后断开连接。但是如果我开始异步读取,断开连接会导致问题。当我尝试结束连接时,我的程序就死机了。 public void bu
我正在尝试使用 Renci SSH.NET 从 C# Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本。我想一个接一个地运行脚本。但不知道如何运行脚本并读取输出并将其存储在标签中
我使用 Renci SSH.NET 库创建了一个程序。它发送所有命令并正常读取结果。但是,当我发送以下命令时: client.RunCommand("cli"); 程序无限期地卡在这一行。 对发生的事
首先,我想澄清一下,我对整个 Python 世界还很陌生。 我正在尝试创建一个 python 脚本,以通过 ssh 连接到多个服务器并执行 bash 命令。 为此,我正在使用 Paramiko,这导致
我下面的代码抛出以下错误,我只能在 Google 上找到涉及日志记录错误的信息,但没有任何内容看起来像我的。我已经尝试安装中央 Maven 存储库所需的依赖项,但问题仍然存在。有谁知道为什么我上课没有
我有一个 Web 服务,它使用 SSH.NET 在 Unix 机器上调用 shell 脚本。 如果我正常运行脚本,它工作正常,在 Informix 数据库上正常工作。 只是一些背景: 我调用了一个执行
我是一名优秀的程序员,十分优秀!