我建立了一个基于Fedora 30 (很快32)的“数字标识-客户端”的自动启动-安装,我需要得到一个实际的视觉反馈的屏幕上现在。我试图通过命令行启用Gnome(参见通过命令行启用Gnome屏幕共享?),但不幸的是,我无法做到。
因此,新的方法是,截图(并通过scp复制)。虽然我可以通过带有gnome-screenshot的gnome终端直接在客户端截图,但我不知道如何在远程完成这一任务。我还尝试了其他工具,如KDE眼镜或快门,但也没有运气。
一个想法是设置一个cronjob来拍摄截图:
$> crontab -e
1 * * * * gnome-screenshot但这不起作用。journalctl _COMM=cron说-- No entries --
有人知道我如何从拍摄截图吗?这应该通过crontab来实现吗?
发布于 2020-05-10 20:56:51
基于n-tchen的信息,火热 (在Fedora中)工作得很好:
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自述
来自import的ImageMagick命令在截图方面做得很好:
import -silent -window root /tmp/screenshot.jpg如果您是通过ssh连接的,请在上面一行的开头添加DISPLAY=:0.0,您需要作为本地登录的同一个用户登录。
如果您想在crontab中运行这个选项卡,下面是如何设置它。这将每6分钟截图一次,并在/root/monitor/中存储一个日期时间编码的文件名。它已经在Ubuntu 16.04和18.04上进行了测试。
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 cronexechttps://unix.stackexchange.com/questions/585753
复制相似问题