首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SSH从Gnome桌面获取屏幕截图

通过SSH从Gnome桌面获取屏幕截图
EN

Unix & Linux用户
提问于 2020-05-10 16:48:51
回答 1查看 1.7K关注 0票数 5

我建立了一个基于Fedora 30 (很快32)的“数字标识-客户端”的自动启动-安装,我需要得到一个实际的视觉反馈的屏幕上现在。我试图通过命令行启用Gnome(参见通过命令行启用Gnome屏幕共享?),但不幸的是,我无法做到。

因此,新的方法是,截图(并通过scp复制)。虽然我可以通过带有gnome-screenshot的gnome终端直接在客户端截图,但我不知道如何在远程完成这一任务。我还尝试了其他工具,如KDE眼镜或快门,但也没有运气。

一个想法是设置一个cronjob来拍摄截图:

代码语言:javascript
复制
$> crontab -e

1 * * * * gnome-screenshot

但这不起作用。journalctl _COMM=cron-- No entries --

有人知道我如何从拍摄截图吗?这应该通过crontab来实现吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-05-10 20:56:51

For Wayland

基于n-tchen的信息,火热 (在Fedora中)工作得很好:

代码语言:javascript
复制
flameshot screen -p ~/

如果您是通过ssh连接的,请在上面一行的开头添加WAYLAND_DISPLAY=wayland-0

您也可以使用gnome-screenshot而不是Flameshot,但是对于ssh您仍然需要上面的添加。

附加信息(来源):

在Wayland上拍摄截图的跨平台方式是通过xdg-桌面-门户 (它也可以在Flatpak之外工作)。请参阅https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.Screenshot.xml

最后,Wayland截图支持Wayland;请参阅GitHub自述

For X11

来自import的ImageMagick命令在截图方面做得很好:

代码语言:javascript
复制
import -silent -window root /tmp/screenshot.jpg

如果您是通过ssh连接的,请在上面一行的开头添加DISPLAY=:0.0,您需要作为本地登录的同一个用户登录。

如果您想在crontab中运行这个选项卡,下面是如何设置它。这将每6分钟截图一次,并在/root/monitor/中存储一个日期时间编码的文件名。它已经在Ubuntu 16.04和18.04上进行了测试。

代码语言:javascript
复制
echo -n "/bin/bash -c '"                                                                  >cronexec
echo -n   'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin && ' >>cronexec
echo -n   'export HOME=/root && '                                                        >>cronexec
echo -n   'export D1=/tmp/gneemp && '                                                    >>cronexec
echo -n   'export F2=`date --utc +/root/monitor/%Y-%m-%dT%H:%M.jpg` && '                 >>cronexec
echo -n   'mkdir -p $D1 && '                                                             >>cronexec
echo -n   'chmod 643 $D1 && '                                                            >>cronexec
echo -n   'DISPLAY=:0.0 sudo -u `who --users |head -1 |grep -o "^\S*"` import -quiet -silent -window root $D1/tmp.jpg && '  >>cronexec
echo -n   'mkdir -p /root/monitor && '                                                   >>cronexec
echo -n   'mv $D1/tmp.jpg $F2 && '                                                       >>cronexec
echo -n   'rmdir $D1 '                                                                   >>cronexec
echo    "'"                                                                              >>cronexec
perl -p -i -e 's|\%|\\\%|g;' cronexec # from the manpage:  "Percent-signs (%) in the command, unless escaped with backslash (\) ..."
(sudo crontab -l 2>/dev/null; echo -n "*/6 * * * * "; cat cronexec) |sudo crontab - && rm cronexec
票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/585753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档