【发布时间】:2016-02-25 05:21:23
【问题描述】:
我需要抓取在 Ubuntu Server 12.04 上运行的命令的屏幕截图,例如
~$ id
uid=0000(local) gid=0000(localo) groups=1000(local)
~$ uname -a
Linux local 3.2.0-54-generic #82-Ubuntu SMP Tue Sep 10 20:08:42 UTC 2013 x86_64 GNU/Linux
和其他几个命令。
我找不到能胜任这项工作的任何东西。我尝试了在ArchWiki 找到的不同工具,但它们都提供黑色屏幕截图作为输出。喜欢,
我尝试使用 Xvfb ~$ Xvfb :1 -screen 0 1360x960x24 -extension RANDR & 从 imagick ~$ DISPLAY=:1 import -window root -quality 100 /var/www/html/output/screenshot.png 创建显示和导入工具以捕获屏幕截图,但没有成功。
我知道一段时间后它会不起作用,因为显示器是空的,黑色图像是正确的输出。
然后我发现GraphTerm 一种在无头浏览器中访问终端并捕获屏幕截图的方法,但它不允许从终端向浏览器发送命令,但它确实说它在终端和浏览器之间创建了 websocket 连接实例。这些是我用来执行此操作的命令:
~$ sudo Xvfb :1 -screen 0 1360x960x24 -extension RANDR &
~$ gtermserver --terminal --auth_type=none & // Starts the graphical server in new browser
~$ DISPLAY=:1 chromium-browser http://localhost:8900/local/new/?cauth=1753c05fd738 &
~$ DISPLAY=:1 import -window root -quality 100 /var/www/html/output/screenshot.png
还有其他方法可以做到这一点吗?或者我在这些步骤中做错了什么。
【问题讨论】:
-
为什么不直接将这些命令的输出重定向到某个文件,然后抓取该文件?
-
看起来像this 这样的东西可以满足要求。之后您可以使用 ImageMagick 将文件转换为 jpeg。
-
感谢@JNevill 的回复。用脚本将输入输出重定向到文件中,用ImageMagick将其转换成图像是一个很好的解决方案。谢谢!
标签: linux ubuntu terminal command-line-interface screenshot