如何使用 Ubuntu 服务器 17 上的 80 端口截屏

如何使用 Ubuntu 服务器 17 上的 80 端口截屏

我使用安装在我的 Ubuntu 17 Azure 服务器上的 Apache2 部署了一个网页。

我可以从终端运行一个命令,通过端口 80 捕获我的网站的屏幕截图吗?

我尝试了这个命令:gnome-screenshot但是因为它是一个服务器,所以它显示:

Unable to init server: Could not connect: Connection refused

(gnome-screenshot:55421): Gtk-WARNING **: cannot open display: 

我如何向该命令添加端口号,或者如何告诉该命令从我的网页获取屏幕截图?

答案1

正如评论者指出的那样,在无头服务器上,您尝试做的事情并没有得到很好的定义。Apache 服务器不会发送网页的任何“图像”(仅发送 HTML 标记);您通常看到的图像是由 Web 浏览器生成的,并且浏览器可以根据屏幕大小(以及浏览器版本、设置等其他因素)以不同的方式呈现同一页面。如果您没有屏幕,则没有明确的方法来捕获图像。

话虽如此,我听说过的一个可能的解决方案(可能是最简单的解决方案)是幻影JS,无头网络浏览器:http://phantomjs.org/
不过我个人还没有使用过这种方法;你的情况可能会有所不同。

在服务器上进行图形操作的更通用的解决方案是使用 Xvfb 为 GUI 应用程序创建一个显示器。这将允许您gnome-screenshot像尝试的那样使用。为此,首先安装并运行 Xvfb:

sudo apt-get install xvfb
export DISPLAY=:0
Xvfb $DISPLAY -screen 0 1920x1080x24 -shmem -cc 4 &

然后安装并运行 Gnome:

sudo apt-get install gnome-panel gnome-screenshot
gnome-settings &
gnome-panel &
metacity &

你需要一个浏览器。任何浏览器都可以,但我将使用 Firefox 作为示例:

sudo apt-get install firefox

然后运行指向您想要的网页的浏览器(在您的情况下,是端口 80 上的 Apache 服务器localhost):

firefox http://localhost &

最后,按照您尝试的方式截取屏幕截图:

gnome-screenshot

(可选)清理进程:

killall firefox Xvfb gnome-settings gnome-panel metacity

如您所见,这种方法更加复杂(并且占用大量资源:安装需要超过 500 MB),但它的优点是您可以像在桌面上一样截取任何 GUI 应用程序的屏幕截图,而不仅限于截取网页的屏幕截图。

答案2

请查看此链接。 http://www.upubuntu.com/2012/07/how-to-take-screenshot-from-terminal-on.html

或者在你的终端上尝试这个 gnome-screenshot --help

相关内容