如何使用 PuTTY 从远程 SSH 服务器上的 PHP 中执行的命令获取结果?

弗雷迪789

我正在尝试通过 SSH 在我的 Raspberry Pi 上执行命令,并在我的 Windows 机器上的 PHP 脚本中获取它的结果。目前我可以在我的 RasPi 上执行命令,但我没有将任何结果返回到 PHP 脚本中。

我为此使用的代码:

<?php

$cmd = "C:\\path_to_putty\\putty.exe -ssh pi@RasPiIP -pw raspberry -m C:\\path_to_test.txt\\test.txt";
$result = shell_exec($cmd);
echo $result;

?>

为了向我的 RasPi 发送命令,代码有效。我已经通过例如更改test.txtsudo reboot并按预期工作进行了多次测试我正在使用 PuTTY 将我的命令(test.txt当前是 nfc-list,它返回连接的扫描仪等在这里不重要)发送到 RasPi。

我想要实现的是$result在我的命令执行时包含返回的数据。

甚至有可能这样做吗?如果是,如何(任何帮助表示赞赏)。如果不是,他们可能有其他方法来解决这个问题吗?

解决可能的重复问题:我正在使用 Windows 机器,并且我正在尝试获取(一个命令的)结果以在我的 PHP 脚本中重用。在另一个问题中,用户正在尝试保存完整的控制台日志并将其保存到另一个文件中。

马丁·普里克里尔

首先,不要使用PuTTY。PuTTY 是一个用于交互式使用的 GUI 应用程序。使用 Plink,它是命令行/控制台等价于用于命令自动化的 PuTTY。作为一个控制台应用程序,它有一个标准输出,可以在 PHP 中读取(PuTTY 作为 GUI 应用程序没有标准输出)。

使用Plink,您还可以在Plink 命令行中指定命令,因此您无需创建test.txt命令文件。

在任何情况下,都无法让 PuTTY 或 Plink 仅将命令的输出分开(至少不是从命令行)。

但是您可以做的是打印一些标题/预告片以区分命令输出的开始和结束,例如:

plink.exe -ssh pi@RasPiIP -pw raspberry "echo start-of-command && command && echo end-of-command"

然后在 PHP 中,您可以查找start-of-commandend-of-command以识别 Plink 输出的哪一部分真正是命令输出。


在任何情况下,您最好使用 PHP SSH 库来实现您想要的,而不是驱动外部应用程序。例如phpseclib但这是一个完全不同的问题。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用批处理文件和PuTTY在远程服务器上执行sftp命令

来自分类Dev

使用批处理文件和PuTTY在远程服务器上执行sftp命令

来自分类Dev

使用脚本在SSH服务器上远程运行命令

来自分类Dev

使用脚本在ssh服务器上远程运行命令

来自分类Dev

使用SSH在远程Linux服务器上运行命令

来自分类Dev

Rundeck:使用 ssh 在远程服务器上运行命令

来自分类Dev

如何使用PuTTY通过ssh将本地文件传输到远程服务器?

来自分类Dev

使用SSH执行内联命令远程服务器

来自分类Dev

使用PuTTY SSH,如何捕获命令的远程输出?

来自分类Dev

通过Windows批处理文件使用PuTTY SSH到远程服务器?

来自分类Dev

通过SSH在远程服务器上执行命令

来自分类Dev

如何使用 SSH 访问远程服务器上的端口?

来自分类Dev

如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

来自分类Dev

如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

来自分类Dev

如何使用PuTTY将sql dump插入到远程mysql服务器中?

来自分类Dev

在ssh和特殊字符的远程服务器上使用sed命令的bash脚本

来自分类Dev

如何使用php从远程服务器上的zip文件中读取csv文件?

来自分类Dev

如何查看服务器上的远程SSH连接?

来自分类Dev

使用matlab在ssh服务器中读取远程图像

来自分类Dev

使用ssh清除远程服务器中的缓存

来自分类Dev

当我已经可以使用 PuTTY 从 Windows 机器 ssh 时,我应该如何使用密钥从 Linux 机器到远程服务器进行 ssh?

来自分类Dev

如何通过SSH在远程服务器上运行Web服务器脚本?

来自分类Dev

通过批处理文件登录PuTTY后,在远程服务器中使用sudo执行命令

来自分类Dev

ssh命令消失后,如何在ssh服务器上关闭远程ssh隧道端口?

来自分类Dev

如何通过ssh在php中获取远程文件并将文件直接返回到浏览器响应,而无需在网络服务器上创建文件的副本

来自分类Dev

继续在远程服务器上使用ssh2_exec显示bash长时间运行的结果

来自分类Dev

使用httpful php库从远程服务器获取文件

来自分类Dev

如何在远程服务器上执行多个命令并获取输出?

来自分类Dev

ssh:在远程服务器上执行命令时出现终端问题

Related 相关文章

  1. 1

    使用批处理文件和PuTTY在远程服务器上执行sftp命令

  2. 2

    使用批处理文件和PuTTY在远程服务器上执行sftp命令

  3. 3

    使用脚本在SSH服务器上远程运行命令

  4. 4

    使用脚本在ssh服务器上远程运行命令

  5. 5

    使用SSH在远程Linux服务器上运行命令

  6. 6

    Rundeck:使用 ssh 在远程服务器上运行命令

  7. 7

    如何使用PuTTY通过ssh将本地文件传输到远程服务器?

  8. 8

    使用SSH执行内联命令远程服务器

  9. 9

    使用PuTTY SSH,如何捕获命令的远程输出?

  10. 10

    通过Windows批处理文件使用PuTTY SSH到远程服务器?

  11. 11

    通过SSH在远程服务器上执行命令

  12. 12

    如何使用 SSH 访问远程服务器上的端口?

  13. 13

    如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

  14. 14

    如何在远程服务器上执行“ php artisan migration”和其他Laravel命令?

  15. 15

    如何使用PuTTY将sql dump插入到远程mysql服务器中?

  16. 16

    在ssh和特殊字符的远程服务器上使用sed命令的bash脚本

  17. 17

    如何使用php从远程服务器上的zip文件中读取csv文件?

  18. 18

    如何查看服务器上的远程SSH连接?

  19. 19

    使用matlab在ssh服务器中读取远程图像

  20. 20

    使用ssh清除远程服务器中的缓存

  21. 21

    当我已经可以使用 PuTTY 从 Windows 机器 ssh 时,我应该如何使用密钥从 Linux 机器到远程服务器进行 ssh?

  22. 22

    如何通过SSH在远程服务器上运行Web服务器脚本?

  23. 23

    通过批处理文件登录PuTTY后,在远程服务器中使用sudo执行命令

  24. 24

    ssh命令消失后,如何在ssh服务器上关闭远程ssh隧道端口?

  25. 25

    如何通过ssh在php中获取远程文件并将文件直接返回到浏览器响应,而无需在网络服务器上创建文件的副本

  26. 26

    继续在远程服务器上使用ssh2_exec显示bash长时间运行的结果

  27. 27

    使用httpful php库从远程服务器获取文件

  28. 28

    如何在远程服务器上执行多个命令并获取输出?

  29. 29

    ssh:在远程服务器上执行命令时出现终端问题

热门标签

归档