【问题标题】:Get Linux screen session with PHP使用 PHP 获取 Linux 屏幕会话
【发布时间】:2012-12-01 00:43:20
【问题描述】:

我的服务器总是有一个屏幕会话正在运行,我想在网页上显示连接到屏幕会话的用户可见的所有内容。

我知道如何运行 SSH 命令并在 PHP 中获取它们的输出,但我似乎无法找到如何锁定屏幕会话并获取可见屏幕并将其发送回 PHP。

感谢任何帮助。

【问题讨论】:

  • stackoverflow.com/questions/294945/… 可以让你开始我认为
  • 您想要类似 VNC 连接的东西吗?要在您的机器上查看物理用户在另一台机器的屏幕上看到的内容?还是您希望其他用户与屏幕会话交互时,使用 PHP 将每个字符发送到您的机器,以便您可以将其显示在网页上?
  • 我还不需要交互。如果用户连接到屏幕会话(例如通过 VNC),我想获得用户会看到的内容,但作为文本,我可以在我的页面上格式化。

标签: php linux ssh


【解决方案1】:

例如,如果该屏幕会话是 Linux 终端,我看到它的唯一方法是将终端登录到文件中,然后使用 PHP 访问该文件并将其打印到您的网页上。

看看这是否有助于您入门:https://ayaz.wordpress.com/2006/11/19/script1-logging-terminal-sessions-to-files/

(在Windows中,如果你使用putty,相信你也可以将内容保存到文件中)

【讨论】:

  • 它看起来像一个开始,但肯定因为我可以断开并重新连接到屏幕会话,会话中的屏幕必须存储在某个地方?
  • 抱歉,太晚了,我现在不关注你了……你是说从你的机器断开并重新连接到其他用户的机器?会话始终存储在文件中。你只需要访问它。
  • 屏幕会话存储在 RHEL 机器上的哪个文件?我基本上只是想对该文件进行分类并获取输出。如果可能的话,我想这样做而不附加它。
  • 它们是 /dev/ttyX,其中 X 是终端号。但是你不能 cat 他们因为它是一个设备文件并且不存储数据。您可以尝试运行 tail -f /dev/ttyX 但我不确定这是否可行。我给你的最后一个链接列出了一个名为 conspy 的程序,它会做你想做的事。
【解决方案2】:

只要php不是在安全模式下运行,你就可以使用phpshell来运行screen。

http://phpshell.sourceforge.net/

Linux.com 关于它的文章。

http://archive09.linux.com/feature/127056

如何共享屏幕会话。请注意,主持人必须允许并添加查看者。

http://eric.lubow.org/2010/system-administration/sharing-a-screen-session/

如果你不使用屏幕,你可以使用它来监控会话。

http://www.cyberciti.biz/faq/linux-make-typescript-of-terminal-session/

这是关于如何监控终端会话的另一个 stackoverflow 答案。

Linux Terminal: how to capture or watch other terminal session

【讨论】:

  • 我相信他的问题是“看到”当前打开的终端屏幕。 PHPShell 非常有用,但它只是打开一个新的 shell 连接。
  • 他说的是屏幕。我假设用户正在运行可以共享会话的屏幕。
  • linux中的终端也是文件。如果您有 root 访问权限,您可以随时查看它们。
猜你喜欢
  • 2010-12-06
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
相关资源
最近更新 更多