gpt4 book ai didi

python - 读取远程输出并使用 paramiko (SSH.execute) 响应

转载 作者:行者123 更新时间:2023-12-02 13:58:25 25 4
gpt4 key购买 nike

我正在使用 python paramiko 模块在远程服务器上运行内置的 parmiko 函数 SSH.execute。我想在需要 4 个提示的服务器上运行脚本。我打算做一个更复杂的版本:

   ExpectedString = 'ExpectedOutput'
Output = SSH.execute('./runScript')
if Output == ExpectedString:
SSH.execute('Enter this')
else:
raise SomeException

问题是没有任何输出返回,因为服务器正在等待输入数字并且脚本卡在这个 SSH.execute 命令上。因此,即使另一个 SSH.execute 命令在它永远不会运行之后运行!我应该使用 paramiko 以外的东西吗?

最佳答案

您需要与远程脚本进行交互。实际上,SSH.execute 并不存在,我假设您在谈论 exec_command。它不只是返回输出,它实际上为您提供了标准输出、标准输入和标准错误流的包装器。您可以直接使用这些来与远程脚本进行通信。

基本上,这就是您运行命令并通过 stdin 传递数据(并使用 stdout 接收输出)的方式:

ssh.connect('127.0.0.1', username='foo', password='bar')

stdin, stdout, stderr = ssh.exec_command("some_script")

stdin.write('expected_input\n')
stdin.flush()

data = stdout.read.splitlines()

当然,您应该检查提示,而不是依赖好的时机。

关于python - 读取远程输出并使用 paramiko (SSH.execute) 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12784433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com