如何从 Centos 服务器获取屏幕像素数据

如何从 Centos 服务器获取屏幕像素数据

我正在运行 Centos 7 服务器,并在其上安装了 LAMP,一切运行正常。我可以通过 SSH 进行所有操作。

但碰巧我需要每小时在 Chrome 中打开一个网站。我无法通过其他方式做到这一点,我真的需要让 Chrome 打开该网站并将屏幕保存在图像文件中。我曾考虑在我的 Centos 7 服务器上安装 Chrome,但我意识到它没有物理屏幕。

我读了很多,有一个叫做“屏幕”的东西,但我认为这不是我需要的。有人知道如何使用 SSH 打开 chrome 浏览器窗口并要求我的 Centos 对其进行截图吗?

答案1

假设您安装了 Chrome,并且它每小时刷新一次,那么您可以使用 ImageMagick 附带的 import 命令来截取屏幕截图。如果一切正常,请设置一个 cronjob 来每小时运行一次 import 命令。

For CentOS:
yum install ImageMagick ImageMagick-devel # I did not test this.

For Ubuntu:
apt-get install imagemagick # How I tested it.    

import -window root screenshot.png

screen 命令允许您以交互方式运行命令,断开 ssh 会话后命令不会受到影响;即使您已注销,命令仍会继续运行。您可以稍后重新登录并重新连接到 screen 会话。

您可以使用 VNC 设置显示器,并在显示器上运行浏览器,然后捕获显示器的屏幕截图。

vncserver :1 -geometry 1920x1080 -depth 24

screen
DISPLAY=":1"; export DISPLAY; midori # Browser I tested.

按 CTRL-a d 退出运行浏览器的屏幕会话。

DISPLAY=":1"; export DISPLAY; import -window root screenshot.png

查看您的活动屏幕会话。

screen -ls

重新连接到屏幕会话。

screen -r "screen id"

相关内容